1.for循環(huán)
格式:
for(初始化語句1; 判斷語句2; 步進(jìn)語句3){
循環(huán)代碼4
}
執(zhí)行流程:
先執(zhí)行1初始化語句
執(zhí)行2判斷語句,如果判斷結(jié)果是true
執(zhí)行4循環(huán)代碼
執(zhí)行3步進(jìn)語句
繼續(xù)回到2 4 3 2 4 3
如果判斷結(jié)果是false,代表循環(huán)結(jié)束
注意:
初始化語句只在第一次循環(huán)中執(zhí)行,之后不再執(zhí)行
代碼演練:
public static void main(String[] args) {
/*
判斷0-10的奇偶數(shù)
*/
//偶數(shù):能夠被2整除的數(shù)字稱為偶數(shù)
// 0 是一個特殊的偶數(shù)
for(int i=0;i<=10;i++){
if (i%2 == 0){
System.out.println(i+"是偶數(shù)");
}else {
System.out.println(i+"是奇數(shù)");
}
}
}
2.while循環(huán)
格式:
初始化語句1;
while(判斷語句2){
循環(huán)代碼3;
步進(jìn)語句4;
}
執(zhí)行流程:
1 初始化語句
2 執(zhí)行判斷語句,如果是true就執(zhí)行大括號里面的代碼,如果是false就結(jié)束循環(huán)
3 循環(huán)代碼
4 步進(jìn)語句
再次循環(huán)執(zhí)行2判斷語句
代碼演練:
public static void main(String[] args) {
/*
求1-100的累加和
*/
int x = 1;
int sum = 0;
while (x<=100){
sum += x;
x++;
}
System.out.println("1-100的累加和為:"+sum);
}
3.do-while循環(huán)
格式:
初始化語句1;
do{
循環(huán)語句2;
步進(jìn)語句3;
}while(判斷語句4);
執(zhí)行流程:
1 初始化語句
2 循環(huán)語句
3 步進(jìn)語句
4 判斷語句 , 如果判斷的結(jié)果是true就繼續(xù)循環(huán),如果判斷的結(jié)果是false就結(jié)束循環(huán)
注意:
do-while循環(huán)是先執(zhí)行后判斷,不管條件是否滿足至少執(zhí)行一次
代碼演練:
public static void main(String[] args) {
/*
輸出1-10的和
*/
int a = 1;
int sum = 0;
do {
sum += a;
a++;
}while (a<=10);
System.out.println("1-10的和為:"+sum);
}
三種循環(huán)的使用場景
三種循環(huán)結(jié)構(gòu)均可實(shí)現(xiàn)相應(yīng)的功能,按照實(shí)際需要選擇更為簡便的形式。以下為使用場景的總結(jié):
- 明確循環(huán)次數(shù)的時候:建議使用for循環(huán)
- 不明確循環(huán)次數(shù)的時候:建議使用while循環(huán)
- do...while循環(huán)比較特殊,它先執(zhí)行循環(huán)體,然后根據(jù)判斷條件決定是否再次執(zhí)行循環(huán),即do...while至少執(zhí)行一次循環(huán)
循環(huán)嵌套
代碼演練1
public static void main(String[] args) {
/*
循環(huán)嵌套:
外層循環(huán)執(zhí)行1次,內(nèi)存循環(huán)執(zhí)行一圈
*/
/*
循環(huán)出從0點(diǎn)0分-23點(diǎn)59分
*/
//遍歷小時
for (int i=0; i<24; i++){
//遍歷分鐘
for (int j=0; j<60; j++){
System.out.println(i + "點(diǎn)" + j + "分");
}
}
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
System.out.println("你是第" + i + "位顧客");
while (true) {
System.out.println("請選擇你想要購買的商品:1.水果 2.蔬菜 3.飲料 4.結(jié)束購買");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
if (a == 1) {
System.out.println("您購買的是水果");
} else if (a == 2) {
System.out.println("你購買的是蔬菜");
} else if (a == 3) {
System.out.println("您購買的是飲品");
} else if (a == 4) {
break;
} else {
System.out.println("您輸入的指令有錯誤");
}
}
}
}
兩種死循環(huán)的寫法
1.while(true){...}
2.for(;;){...}