1. 顺序结构
2. 分支结构
if(){
}
else{
}
switch:
class test{
public static void main(String[] args){
int x = 6;
switch(x){
case 1:
System.out.println("a");
break
case 6:
System.out.println("b");
break
default:
System.out.println("c");
break
}
}
}
x只能为:byte, short, int, char, enum, String
case后需要加break,否则会执行下一个break之前的所有代码。
利用这个特性可以用switch做学习成绩查询,虽说一般用for- -
import java.util.*; class test{ public static void main(String[] args){ Scanner s = new Scanner(System.in); int x = s.nextInt(); switch(x/10){ case 0: case 1: case 2: case 3: case 4: case 5: System.out.println("不及格"); break; case 6: System.out.println("及格"); break; case 7: System.out.println("中等"); break; case 8: System.out.println("良好"); break; case 9: System.out.println("优秀"); break; case 10:
if(x == 100){ // 防止101-109的数字出现,出现后直接跳过并穿透到default System.out.println("满分"); break;
} default: System.out.println("请输入0-100之间的数字"); break; } } }
3.循环结构
for(初始条件;循环条件(不满足则循环停止);变化量(每次循环后的变化)){
}
while(循环条件){
变化
执行代码
}
do{
变化
执行代码
}
while(满足条件);
区别
import java.util.*; class test{ public static void main(String[] args){ int i = 10; while(i<5){ System.out.println(i); } System.out.println(i); i = 10; do{ System.out.println(i); i++; } while(i<5); System.out.println(i); } }
初始值就不符合循环条件时
while不会执行
do while会执行一次
break
int i = 1; while(i < 5){ if(i == 3){ break; } i++ } }
break会终止循环。
import java.util.*; class test{ public static void main(String[] args){ for(int i = 0;i < 5; i++){ for(int j = 0; j < 5; j++){ if(j == 3){ break; } System.out.println("i=" + i + "|j=" + j); } } } }
break只会中断里层循环,而且break之后不能直接加代码
import java.util.*; class test{ public static void main(String[] args){ for(int i = 0;i < 5; i++){ for(int j = 0; j < 5; j++){ if(j == 3){ break; System.out.println("循环终止"); } System.out.println("i=" + i + "|j=" + j); } }
} }
continue
continue只中断这一次循环,break是中断整个循环。
import java.util.*; class test{ public static void main(String[] args){ for(int i = 0;i < 5; i++){ for(int j = 0; j < 5; j++){ if(j == 3){ continue; } System.out.println("i=" + i + "|j=" + j); } } } }
j会在等于0,1,2,4的时候输出
break的时候 j 不会等于4;
循环标记
才知道有这玩意。。。
通过给循环起名字来操作指定循环,不指定的话只能操作break和continue所在的内层循环。
import java.util.*; class test{ public static void main(String[] args){ cycle1: for(int i = 0;i < 5; i++){ cycle2: for(int j = 0; j < 5; j++){ if(j == 3){ break cycle1; } System.out.println("i=" + i + "|j=" + j); } } } }
cycle2中判定j==3后,直接中断外部cycle1循环。
continue同理
import java.util.*; class test{ public static void main(String[] args){ cycle1: for(int i = 0;i < 5; i++){ cycle2: for(int j = 0; j < 5; j++){ if(j == 3){ continue cycle1; } System.out.println("i=" + i + "|j=" + j); } System.out.println("---------"); } } }
continue中断了外部的循环因为中断了外部循环所以内部循环也不再执行,继续执行外部循环的下一次;
i=0,j=3时,停止当前循环,继续执行下一次i=1的循环。
while也可以起名字 name:while(...){}
Math.pow(a,b); a^b