JAVA 流程控制
流程控制
1. 顺序结构
相当于代码 按顺序 从上向下依次执行
2.分支结构
if语句有三种格式
书写格式:
格式一:
if(判断条件){
执行体
执行语句1;
执行语句2;
.......
}
如果 判断条件成立 就执行 执行体
格式二:
if(判断条件){
执行体1
}else{
执行体2
}
如果 判断条件成立 执行 执行体1 反之 执行 执行体2
格式三:
if(判断条件1) {
执行体1
} else if(判断条件2) {
执行体2
} else if(判断条件3) {
执行体3
} else {
执行体4
}
如果判断条件都不成立 就去执行 else 中的语句
注意:根据具体情况 来具体分析 来使用哪种形式
switch 结构
switch (值 key) {
case value:
语句体1
break;
case value2:
语句体2
break;
default:
语句体3
break;
}
switch的执行
用(值) key 和 value1 进行匹配 匹配上 就执行 语句体1
没匹配上 就继续向下匹配 value2 匹配上就执行 语句体2
如果都没匹配上就执行 default 后面的语句体3
*/
如果你判断是个区间使用if比较方便
如果是简单的几个数那么用switch比较方便
三目运算符 ( 三元运算符 条件表达式 )
int num1 = 10;
int num2 = 15;
int max = (num1 > num2) ? num1 :num2;
System.out.println(max);
循环结构
while 循环
①
while(判断条件){
②
循环体
}
如果 判断条件成立 就执行循环体
反之 不成立 就不执行
1 -> 2 1(再去看条件是否成立) -> 2 -> 1(如果不成立循环结束)
do…while 循环
do{
①
循环体
②
}while(循环的判断条件);
先执行循环体中的内容(不管循环条件成不成立 都会执行循环体的内容)
再去看循环条件 满足就执行循环体 依次循环
当循环条件 不成立时 循环结束
注意:循环增量写在 do外面 否则 判断时访问不到
for 循环
① ② ③
for(表达式;判断条件;表达式){
④
循环体
}
① -> ② -> ④ -> ③ -> ② -> ④ -> ③
当判断条件不成立时,结束循环
注意:循环的执行顺序
for 循环的嵌套
书写格式
for (int i = 0; i < args.length; i++) {
for (int j = 0; j < args.length; j++) {
}
}
举例: 打印下列图形 使用for循环的嵌套
***
***
***
***
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++) {
System.out.print("*");
}
System.out.println("");
}
发现规律:
外循环 控制行数
内循环 控制每一行 有几个元素
*****
****
***
**
*
修改内循环 循环增量的初值
for (int i = 0; i < 5; i++) {
for (int j = i; j <5 ; j++) {
System.out.print("*");
}
System.out.println();
}
*
**
***
****
*****
改变 内循环的 循环增量判断条件
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
...
...
...
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i ; j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
break 在循环中的作用
for (int i = 0; i < 10; i++) {
if (i == 6) {
break;
}
System.out.println(i);
}
举例:打印[0, 100]中是7的倍数中的值最大那个数
使用 break 可以倒着打印 进到循环中的第一个数就是 最大值
for (int i = 100; i >= 0; i--) {
if (i % 7 == 0) {
System.out.println(i);
break;
}
}
continue 在循环中的作用
可以先 测试一下 contiue 作用
for (int i = 0; i < 10; i++) {
if (i == 6) {
continue;
}
System.out.println(i);
}
举例: 班级12个人 跟每个人打招呼 讨厌的人不打招呼
我分别讨厌 3号 5号 9号
for (int i = 1; i <= 12; i++) {
if (i == 3 || i == 5 || i == 9) {
continue;
}
System.out.println(i+"号 你好");
}
For 循环嵌套中 continue 和 break 的作用
嵌套中 break 结束了本层的 循环
continue 跳出这一次的本层循环 继续下一次的本层循环
没有影响到 外层循环