JAVA流程控制语句

举报
运气男孩 发表于 2021/11/21 23:07:47 2021/11/21
【摘要】 本篇继续回顾java的基础流程控制语句,打好基础才能写好高内聚低耦合、更易维护的代码呀。流程控制语句流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。流程控制语句分类顺序结构分支结构(if,switch)循环结构(for,while,do…while)顺序结构顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,...

本篇继续回顾java的基础流程控制语句,打好基础才能写好高内聚低耦合、更易维护的代码呀。

流程控制语句

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

流程控制语句分类

  • 顺序结构
  • 分支结构(if,switch)
  • 循环结构(for,while,do…while)

顺序结构

顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

分支结构

if语句格式1

格式: if (关系表达式) {    
语句体;  
  }

执行流程:

  1. 首先计算关系表达式的值
  2. 如果关系表达式的值为true就执行语句体
  3. 如果关系表达式的值为false就不执行语句体
  4. 继续执行后面的语句内容

if语句格式2

格式: if (关系表达式) {    

            语句体1;    

             } else {    

            语句体2; 

         }

执行流程:

  1. 首先计算关系表达式的值
  2. 如果关系表达式的值为true就执行语句体1
  3. 如果关系表达式的值为false就执行语句体2
  4. 继续执行后面的语句内容

if语句格式3

格式: if (关系表达式1) {     语句体1;     } else if (关系表达式2) {     语句体2;     }  … else {     语句体n+1; }

做一个简单的相亲案例,来实践一下上面的流程控制:

需求:男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出 一定的条件:高:180cm以上;富:财富1千万以上;帅:是。   如果这三个条件同时满足,则:“我一定要嫁给他!!!”   如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”  如果三个条件都不满足,则:“不嫁!”

思路分析:

1.定义三个变量用于保存对象的身高,财富,颜值,这里仅仅体现数值即可。
int height = scanner.nextInt();
double wealth= scanner.nextDouble();;
boolean appearance = scanner.nextBoolean();
2.用if判断对象的身高,财富,颜值是否达到心中标准
	if(height>180 ){} 
                        ….
3.   输出结果

分支结构(switch)

格式: switch(表达式) {     
case 值1:     语句体1;  
              break;    
case 值2:     语句体2;  
             break;   
                          …    

default:         语句体n+1;    
                [break;]

}

用switch来实现:

需求:根据用于指定月份,打印该月份所属的季节。 比如:3,4,5 春季   6,7,8 夏季    9,10,11 秋季         12, 1, 2 冬季

思路:

1.定义一个变量用于接受输入的月份。
int month= scanner.nextInt();
2.用switch判断月份:
	switch(month){
case 3:
case 4:
case 5:System.out.print(“春暖花开”);break;
….
} 
                  
3.   输出结果

循环结构(for)

格式:
for (初始化语句;条件判断语句;条件控制语句) {    循环体语句;
}

执行流程:

  1. 执行初始化语句 执行条件判断语句,看其结果是true还是false         
  2. 如果是false,循环结束          
  3. 如果是true,继续执行 执行循环体语句 执行条件控制语句 回到2继续 

循环结构(while)

完整格式:
初始化语句;
while (条件判断语句) {   循环体语句;
        条件控制语句;
}

执行流程:

  1. 执行初始化语句 执行条件判断语句,看其结果是true还是false  
  2. 如果是false,循环结束      
  3. 如果是true,继续执行 执行循环体语句 执行条件控制语句 回到2继续

循环结构(do...while) 

基本格式:
do {
    循环体语句;
}while(条件判断语句);


完整格式:
初始化语句;
do {
    循环体语句;
    条件控制语句;
}while(条件判断语句);

看了上面的循环的基本语法和基础,这里来总结一下它们的区别

三种循环的区别

  1. for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
  2. do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

for和while的区别

 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了    条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用

死循环格式: for(;;) { }     while(true) { }     do{ }while(true);

while的死循环格式是最常用的 命令提示符窗口中Ctrl+C可以结束死循环

流程控制语句:循环嵌套

将一个循环放在另一个循环体内,就形成了嵌套循环。其中, for ,while ,do…while均可以作为外层循环或内层循环。

  实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。 

设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。

for ( ;; ) {  
    for( ;; ) {  
        ....
    }
}

跳转控制语句

continue    用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行

break    用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环

现在来做一个猜数字的游戏程序:

需求:程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少? 当猜错的时候根据不同情况给出相应的提示 如果猜的数字比真实数字大,提示你猜的数据大了 如果猜的数字比真实数字小,提示你猜的数据小了 如果猜的数字与真实数字相等,提示恭喜你猜中了

分析:

要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100
因为无法预知几次能够猜中,因此猜数字这个操作应该是反复进行的,需要使用循环,而while循环通常用于描述未知循环次数的循环
使用程序实现猜数字,每次均要输入猜测的数字值,需要使用键盘录入实现
比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if..else..if..格式,根据不同情况进行猜测结果显示,当猜中后使用break结束循环即可

99乘法表

需求:在控制台输出所有的99乘法表

首先有9行,所以确定一个循环,从1到9。
	for(int i=1;i<=9;i++){                     }
2.对于第i行,都有j列,1<=j<=i
                    for(int i=1;i<=9;i++){
                  for(int j=1;j<=i;j++){
                        ….
                  }                     
                     }                  
3.   输出结果

关于JAVA流程控制语句大概就介绍到这里了,感恩能与大家在华为云遇见!希望能与大家一起在华为云社区共同成长。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。