目录
附加 控制台输入
获取用户在控制台输入的内容,使用引用数据类型Scanner
使用Scanner步骤:
-
导包
-
创建
-
使用
1.5 流程控制语句
分类:
-
顺序结构
-
选择结构
-
循环结构
1.5.1 顺序结构
顺序结构就是代码从上到下执行。默认都是顺序结构。
1.5.2 选择结构
选择结构也叫分支结构,根据不同的条件执行不同的代码。
选择结构分为:
-
if语句
-
switch语句
1.5.2.1 if语句
if语句分为三种格式
if语句格式1
格式:
if (布尔表达式){ 语句体; }
执行流程:
-
首先判断布尔表达式的结果是true还是false
-
如果是true就执行语句体
-
如果是false就不执行语句体,直接执行其他语句
注意:如果if语句中只有一行代码,可以省略大括号
if语句格式2
格式:
if (布尔表达式){ 语句体1; }else{ 语句体2; }
执行流程:
-
首先判断布尔表达式的结果是true还是false
-
如果是true就执行语句体1
-
如果是false就执行语句体2
例如:输入一个整数,输出这个数是奇数还是偶数
if语句格式3
格式:
if (布尔表达式1){ 语句体1; }else if(布尔表达式2){ 语句体2; }else if(布尔表达式3){ 语句体3; }else if(布尔表达式4){ 语句体4; } ... else if(布尔表达式n){ 语句体n; }else{ 语句体n + 1; }
执行流程:
-
首先判断布尔表达式1的结果是true还是false
-
如果是true就执行语句体1
-
如果是false就继续判断布尔表达式2的结果是true还是false
-
如果是true就执行语句体2
-
如果是false就继续判断布尔表达式3的结果是true还是false
-
如果没有任何布尔表达式的结果是true,就执行语句体n + 1
-
1.5.2.2 switch语句
格式:
switch (表达式){ case 目标值1: 语句体1; break; case 目标值2: 语句体2; break; ... case 目标值n: 语句体n; break default: 语句体n + 1; break; }
解释:
-
表达式的取值类型可以是 byte short int char
-
JDK5之后可以是枚举
-
JDK7之后可以是字符串
-
case 后面是要和表达式进行比较的值
-
语句体可以是一条语句,也可以是多条语句
-
break表示中断,可以立即结束switch语句
-
default语句表示所有的目标值都没有匹配时,执行default中的语句体
执行流程:
-
首先计算表达式的值
-
使用表达式的值依次和case的目标值进行比较,如果相同就执行对应的语句体。
-
如果都不相同,就执行default语句
注意点:
-
default中的break如果在代码的最后,可以省略
-
switch语句中的顺序不影响最终的结果
-
case具有穿透效果。如果没有break的影响,会一直执行下去。
1.5.3 循环结构
1.5.3.1 概述
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称之为循环体语句。当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false从而结束循环。
循环语句:
-
for循环
-
while循环
-
do-while循环
1.5.3.2 for循环结构
格式:
for (初始化表达式1;布尔表达式2;步进表达式4){ 循环体3; }
执行流程:
执行顺序: 1 2 3 4 2 3 4 ..... 2
如果布尔表达式的结果是true,那么就继续循环,如果结果是false,就结束循环
1.5.3.3while循环结构
基本格式:
while (布尔表达式){ 循环体语句; }
扩展格式:
初始化表达式1; while (布尔表达式2){ 循环体语句3; 步进表达式4; }
执行顺序: 1 2 3 4 2 3 4 ...2
1.5.3.4 do-while循环结构
基本格式:
do{ 循环体语句; }while(布尔表达式);
扩展格式:
初始化表达式1; do{ 循环体语句3; 步进表达式4; }while(布尔表达式2);
执行顺序:1 3 4 2 3 4 2 3 4 .....2
三种循环的区别?
无论是break还是continue,在多个循环嵌套中,只作用于当前循环
-
dowhile循环至少会执行一次循环语句
-
for循环结束后,控制条件语句的那个变量就已经被回收了。但是while和doWhile循环中的变量依然存在。
-
使用推荐: for --> while -- > doWhile
-
注意:循环是可以嵌套的。
for (int i = 1;i <= 10;i++){ System.out.println("i = " + i); for (int j = 1;j <= 10;j++){ System.out.println("j = " + j); } }
1.5.4 跳转控制语句
-
让循环在某一步的时候结束或者跳过某些数据不要这些数据,Java提供了跳转控制语句来中断和跳转。
-
break 中断
-
可以用在循环中
-
也可以用在switch语句中
-
表示立即结束循环或者结束switch语句
-
-
continue 继续
-
只能用在循环中
-
表示立即结束本次循环,开始下一次循环
-
1.5.5 死循环
死循环又称之为永真循环,或者无限循环.就是循环的条件判断一直都是true,循环不会结束。
死循环标准写法: while(true){}