一,流程控制
流程结构:顺序结构 。
选择结构:if 语句,switch 语句。
循环结构:while 语句,do-while 语句,for 语句。
★流程的认识。
二,选择结构
1.if 单分支
if(表达式){
语句
}
if 单执行步骤:
对表达式结果进行判断;
结果为真 true,则执行该语句;
结果为假 false,则跳过该语句。
2.if 双分支
if(表达式){
语句1
}else{
语句2
}
if 双执行步骤:
对表达式结果判断;
结果真 true,则执行语句1;
结果假 false,则执行语句2。
else 是if 语句的一部分,不能单独使用,与最近的 if 语句配对使用。
3.if 多分支
if(表达式1){
语句1
}else if(表达式2){
语句2
}else{
语句3
}
if 多执行步骤:
对表达式1结果判断;
1的结果真 true,则执行语句1;否则判断表达式2;
2的结果真 true,则执行语句2;否则执行语句3。
★不论多分支 if语句中有多少个条件表达式,只会执行符合条件的一个,如果没有符合条件的,则执行 else 中的语句。
4.嵌套 if 控制语句
if(表达式1){
if(表达式2){
语句1
}else{
语句2
}
}else{
if(表达式3){
语句3
}else{
语句4
}
}
嵌套 if 执行步骤:
对表达式1结果判断,
1的结果真 true ;在判断表达式2,如果2结果 true,则执行语句1;否则,执行语句2;
1的结果假 false;在判断表达式3,如果3结果 true,则执行语句3;否则,执行语句4。
5.switch 语句
switch(表达式){
case 常量1:
语句1;
break;
case 常量1:
语句1;
break;
case 常量1:
语句1;
break;
……
default:
语句;
break;
}
☆★,如果case后没有break语句,程序将向下执行,直到遇到break语句跳出或switch语句,结束。
switch 语句执行步骤:
计算switch后表达式的值;
将计算值与case常量值比对;
如果相等就执行该常量后的代码语句,遇到break语句就结束。
如果与任何case常量值都不匹配,就执行default 中的语句。
★★ switch 只能做等值判断。它后表达式是变量,数据类型只能5类 int short byte char String。
case值与表达式值,必须保持一致。
if 是做 区间 判断的。它表达式是 关系式,值为boolea 布尔。
三,循环结构
变量初始化
1.while 循环
while(循环条件){
循环体语句;
迭代语句;
}
执行:
1,初始值出发,判断循环条件,结果为真,则执行循环体语句。
2,在判断循环条件,结果为真,继续执行。
3,如果结果为假时,则跳过循环语句,执行后面语句。
2.do-while 循环
do{
循环体语句;
迭代语句;
}
while(循环条件);
执行:
1,先执行循环语句。
2,执行后根据结果,判断条件,结果为真,则执行循环体。结果为假,则终止循环,执行后面语句。
3.for 循环
for(变量初始化;条件;迭代语句){
循环体;
}
执行:
1,执行初始化,初始值出发。
2,判断循环条件。
3,结果为真,则执行循环体。
4,迭代变化,改变初始变量值,在判断条件,结果为真,继续循环。
5,如果结果为假,则终止循环,执行后面语句。
★,while和for,一样,都是先判断后执行,而do-while 则是先执行一遍,后判断。
当明确知道循环次数时,优先选用 for 循环,因为其代码量最小,执行效率最高。不确定循环次数时,考虑 while 或 do-while 。当需要先执行一遍时,优先 do-while。
4.多重循环
while(条件1){
循环语句1;
for(;条件2;){
循环语句2;
}
}
for(;条件1;){
循环语句1;
for(;条件2;){
循环体2;
}
}
★,外部循环执行1次,内部循环执行1圈!
5.跳转语句
1.break 语句
例如:输出数字1~10,若遇到4的倍数程序自动退出。
public static void main(String[] args){
for(int i=1;i<10;i++){
if(i%4==0){
break;
}
System.out.println(i+"");
}
System.out.println("循环结束。");
}
★,break 语句是终止当前循环的执行,执行循环后面的语句。相当于直接跳出结束循环。
break 只会出现在 switch 和循环语句中,没有其他使用场合。
2.continue 语句
如:
public static void main(String[] args){
for(int i=1;i<10;i++){
if(i%4==0){
continue;
}
System.out.println(i+"");
}
System.out.println("循环结束。");
}
★,continue 是强制循环提前返回,跳过本次循环中剩余代码,而开始下一次新循环。
在while和do-while循环中,continue执行完后,循环将直接判断条件,结果为真,则继续下一次循环,苟泽,终止循环。而在for循环中,continue使程序先跳转到迭代语句,然后在判断条件。
3.return 语句
将会直接结束该方法,跳转到调用方法处。