目录
在程序的开发中,一共会存在三种逻辑结构:
- 顺序结构
从上到下依次执行每条语句
- 分支结构
IF()、IF -> ELSE、SWITCH()
- 循环结构
FOR()、WHILE()、DO WHILE()
IF分支结构
主要是针对于关系表达式进行判断处理的分支结构
if(关系表达式) {
执行逻辑;
}
IF-ELSE分支结构
主要是针对于关系表达式多条件判断处理的分支结构
if(关系表达式) {
执行逻辑;
} else if(关系表达式) {
执行逻辑;
} else if(关系表达式) {
执行逻辑;
} else {
执行逻辑;
}
SWITCH分支结构(开关语句)
switch(数据) {
case 数值: {
数据满足时执行;
[break;]
}
case 数值: {
数据满足时执行;
[break;]
}
...
[default:
所有判断条件都不满足时执行;
[break;]
]
}
说明:在jdk1.7版本以前,switch的条件仅限于int类型的值,byte、short、int、char均满足条件
在jdk1.7版本以后,整形,boolean,String,枚举均支持,当条件为 String 时,switch 会调用String.hashCode自动转为int类型
switch 中,如果表达式的值和某个case后面的常量值相同,则执行该 case 语句后若干个语句,直至遇到 break 为止。若没有一个常量值与表达式的值相同,则执行 default 后面的语句,default语句为可选语句,如果不存在,且 switch 语句中表达式的值不与任何 case 相同,switch 不做任何处理
FOR循环
for(表达式1; 表达式2; 表达式3){
代码逻辑;
}
表达式1:初始化表达式,负责完成变量得到初始化
表达式2:循环条件表达式,值为boolean类型,指定循环条件
表达式3:循环后操作表达式,负责修正变量,改变循环条件
说明:当执行for循环时,首先执行表达式1,完成初始化工作,下一步判断表达式2的值,若表达式2为 true,则进入循环体,之后进行表达式3,结束当前循环体。第二轮循环从表达式2开始。若表达式2为true,则继续 循环,否则跳出整个循环
注意:
for(;;) 这样的表达式表示无限循环,可以用break跳出循环
WHILE()、DO-WHILE()循环
while(条件表达式) {
条件满足时执行;
修改循环条件;
}
do{
条件满足时执行;
修改循环条件;
} while (条件表达式);
注意:while()只有条件满足时,才会循环代码块;而do while()中会先执行一次代码块后,在判断循环条件
循环控制语句
break、continue 都可以在循环中使用,但是 break 可以在 switch 中使用,continue 不可以。
break 表示跳出当前循环或跳出当前 switch 语句块,当有多层循环时 break 只跳出其“包裹”循环,无法跳出所有循环。同样,在多层 switch 嵌套的程序中,break 也只能跳出其所在的距离它最近的 switch。但多层 switch 嵌套实在是少见。
continue 为结束本次循环,即跳过循环体中未执行的代码块,重新执行下一次是否循环的判断。
嵌套循环
在一个循环语句中嵌套其他循环语句就称为循环嵌套处理,循环嵌套层次越多复杂度就越高。
打印乘法口诀表
for(int i = 1; i < 10; i++) {
for(int j = 1; j <= i; j++) {
System.out.print(i + "*" + j + "=" + (i * j) + " ");
}
System.out.println();
}
打印三角形
for(int i = 0; i < line; i++) {
for(int j = 0; j < line - i; j++) {
System.out.print(" ");
}
for(int j = 0; j <= i; j ++) {
System.out.print("* ");
}
System.out.println();
}