JAVA流程控制语句
本篇继续回顾java的基础流程控制语句,打好基础才能写好高内聚低耦合、更易维护的代码呀。
流程控制语句
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
流程控制语句分类
- 顺序结构
- 分支结构(if,switch)
- 循环结构(for,while,do…while)
顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
分支结构
if语句格式1
执行流程:
- 首先计算关系表达式的值
- 如果关系表达式的值为true就执行语句体
- 如果关系表达式的值为false就不执行语句体
- 继续执行后面的语句内容
if语句格式2
格式: if (关系表达式) {
语句体1;
} else {
语句体2;
}
执行流程:
- 首先计算关系表达式的值
- 如果关系表达式的值为true就执行语句体1
- 如果关系表达式的值为false就执行语句体2
- 继续执行后面的语句内容
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 (初始化语句;条件判断语句;条件控制语句) { 循环体语句;
}
执行流程:
- 执行初始化语句 执行条件判断语句,看其结果是true还是false
- 如果是false,循环结束
- 如果是true,继续执行 执行循环体语句 执行条件控制语句 回到2继续
循环结构(while)
完整格式:
初始化语句;
while (条件判断语句) { 循环体语句;
条件控制语句;
}
执行流程:
- 执行初始化语句 执行条件判断语句,看其结果是true还是false
- 如果是false,循环结束
- 如果是true,继续执行 执行循环体语句 执行条件控制语句 回到2继续
循环结构(do...while)
基本格式:
do {
循环体语句;
}while(条件判断语句);
完整格式:
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
看了上面的循环的基本语法和基础,这里来总结一下它们的区别
三种循环的区别
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
- 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流程控制语句大概就介绍到这里了,感恩能与大家在华为云遇见!希望能与大家一起在华为云社区共同成长。
- 点赞
- 收藏
- 关注作者
评论(0)