0003.Java学习—控制流程
控制流程
块作用域
块(复合语句)指由一对大括号括起来的若干条简单的Java语句。
块确定了变量的作用域。
一个块可以嵌套在另一个块中。
注意:不能在嵌套的两个块中声明同名的变量。
条件语句
- 在Java中, if-else 语句是控制程序执行流程最基本的形式。 其中 else 是可选的,因此可以有两种形式的 if。格式为:
//第一种 if(Boolean-condition) { statement } //第二种 if(Boolean-expression) { statement1 }else { statement2 } //第三种 if(Boolean-expression1) { statement1 }else if(Boolean-expression2){ statement2 }else if(Boolean-expression3){ statement3 }else { statement4 }
- 三种格式流程图分别为:
第一种流程图:
第二种流程图:
第三种流程图:
- 执行语句会在每一次循环前,判断布尔表达式返回值是否为 true。
- 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量
- 条件必须用括号括起来。结尾的一条简单语句,也可以是包含在大括号 {} 内的的复合语句 —— 封闭在大括号内的一组简单语句。
迭代语句
概述
while,do-while 和 for 用来控制循环语句(有时也称迭代语句)。只有控制循环的布尔表达式计算结果为 false,循环语句才会停止。
while语句
- while循环的形式:
执行流程图如下:while(Boolean-expression) { statement } int i = 1; while(i < 10) { System.out.println(i); i++; }
- 执行语句会在每一次循环前,判断布尔表达式返回值是否为 true。
do-while语句
- do-while 的格式如下:
执行流程图如下:do{ statement } while(Boolean-expression); int i = 1; do{ println(i); i ++; }while(i < 10);
- while和do-while的区别:
(1). 即使条件表达式返回结果为 false, do-while 语句也至少会执行一次。
(2). 在 while 循环体中,如布尔表达式首次返回的结果就为 false,那么循环体内的语句不会被执行。
(3). 实际应用中,while 形式比 do-while 更为常用。
for语句
- for 循环可能是最常用的迭代形式。 该循环在第一次迭代之前执行初始化。随后,它会执行布尔表达式,并在每次迭代结束时,进行某种形式的步进。
- for 循环的形式是:
for(initialization; Boolean-expression; step){ statement }
- 初始化 (initialization) 表达式、布尔表达式 (Boolean-expression) ,或者步进 (step) 运算,都可以为空。为空的for循环是无限循环,只能在表达式中添加退出语句。
- 每次迭代之前都会判断布尔表达式的结果是否成立。
- 一旦计算结果为false,则跳出 for 循环体并继续执行后面代码。 每次循环结束时,都会执行一次步进。
- for语句内部定义不能在循环体之外使用。
- 例:
for (int i = 1; i < 10; i++) { System.out.println(i); }
- 执行流程图如下:
for-in语句
- Java 5 引入了更为简洁的“增强版 for 循环”语法来操纵数组和集合。
- for-in 无需你去创建 int 变量和步进来控制循环计数。
- 增强for 循环的形式是:
int[] intArr = new int[]{1, 2, 3, 4, 5, 6}; for(int i : intArr){ System.out.println(i); }
多重选择: switch语句
- switch语句可以从一系列语句中选出一段去执行,执行流程为:
switch(integral-selector) { case integral-value1 : statement; break; case integral-value2 : statement; break; case integral-value3 : statement; break; case integral-value4 : statement; break; case integral-value5 : statement; break; // ... default: statement; } //例: int i = 2; switch(i) { case 1 : System.out.println("星期一"); break; case 2 : System.out.println("星期二"); break; case 3 : System.out.println("星期三"); break; case 4 : System.out.println("星期四"); break; case 5 : System.out.println("星期五"); break; case 6 : System.out.println("星期六"); break; case 7 : System.out.println("星期日"); break; default : System.out.println("数字输入错误, 请重新输入"); break; }
- switch语句将从与选项值相匹配的case标签处开始执行直到遇到break语句,或者执行到switch语句的结束处为止。如果没有相匹配的case标签,而有default子句,就执行这个子句。
- 注意:
(1). switch(表达式)中表达式的值必须是下述几种类型之一:byte, short, char, int, 枚举(jdk 5.0),
String(jdk 7.0);
(2). case子句中的值必须是常量,不能是变量名或不确定的表达式值;
(3). 同一个switch语句,case常量互不相同;
(4). 如果在case分支语句后面没有加break将会接着执行下一个case分支语句,得不到想要的结果,所以不推荐使用switch语句。
中断控制流语句
return
- return的两个作用:
(1). 指定一个方法的返回值(方法返回值类型非void)
(2). 退出当前方法 - 如果方法的返回值类型非void,必须保证每个代码路径都有返回值。
break和continue
- break 表示跳出当前循环体。而 continue 表示停止本次循环,开始下一次循环。
- 例:
for (int j = 0; j <= 5; j++) { if (j == 3) { continue; } else if (j == 4) { break; } System.out.println(j); } //result: 0 1 2
- 解析:正常应该输出0,1,2,3,4,5,但是当j=3的时候停止了本次循环,没有输出,当j=4时,跳出了循环体。
https://blog.csdn.net/qq_43033513/article/details/114971307?spm=1001.2014.3001.5502
0004.Java学习—集合(List包含源码分析)
如有任何错误,请不吝赐教。