一、while循環:又稱為當型循環
while(循環條件){
//循環操作語句
}
要點:①先判斷後執行②循環次數不定③避免死循環
例題:輸入一個正整數,把整數逆序輸出,如輸入12345,輸出54321
1 import java.util.Scanner; 2 public class dowhileforDemo{ 3 public static void main(String []args) 4 { 5 //輸入一個正整數,把整數逆序輸出,如輸入12345,輸出54321 6 Scanner input=new Scanner(System.in); 7 System.out.println("請輸入一個正整數"); 8 int number=input.nextInt(); 9 while(number!=0) 10 { 11 int res=number%10; 12 System.out.print(res); 13 //number=number/10; 14 number/=10; 15 } 16 } 17 } View Code二、do while循環:又稱為直到型循環
要點:①先執行後判斷②至少執行一次③最後的分號勿漏
do{
//循環操作語句
}while(循環語句);
例題:計算從1開始的連續n個自然數之和,當其和剛好超過100時結束,求n的值
1 public class dowhileforDemo{ 2 public static void main(String []args) 3 { 4 //計算從1開始的連續n個自然數之和,當其和剛好超過100時結束,求n的值 5 int number2=0; 6 int sum=0; 7 do{ 8 number2++; 9 sum+=number2; 10 }while(sum<=100); 11 System.out.println("sum="+sum); 12 System.out.println("number2="+number2); 13 } 14 } View Code三、for循環
for(表達式1;表達式2;表達式3){
//循環操作;
}
表達式1:參數初始化,對變量賦值
表達式2:條件判斷
表達式3:更新循環體變量,防止死循環
執行順序:1、參數初始化2、條件判斷 3、循環操作4、更新循環體變量5、條件判斷6、循環操作7、更新循環體變量….(重復2,3,4步)
例題:打印1-10
1 public class dowhileforDemo{ 2 public static void main(String []args) 3 { 4 //打印1-10 5 for(int i=1;i<=10;i++) 6 { 7 System.out.println(i); 8 } 9 } 10 } View Codefor循環的3個表達式都可以省略
①表達式1省略
1 public class dowhileforDemo{ 2 public static void main(String []args) 3 { 4 //打印1-10 5 int i=1; 6 for(;i<=10;i++) 7 { 8 System.out.println(i); 9 } 10 } 11 } View Code②表達式2省略會導致條件永遠成立,形成死循環
③表達式3省略,也可能導致條件永遠成立,形成死循環
但可以寫在循環操作中
1 public class dowhileforDemo{ 2 public static void main(String []args) 3 { 4 //打印1-10 5 int i=1; 6 for(;i<=10;) 7 { 8 System.out.println(i); 9 i++; 10 } 11 } 12 } View Code④3個表達式全部省略,條件永遠成立,形成死循環
分號不能省略
四、while循環與for循環比較
while循環是不確定型循環(循環次數不確定),for循環是確定型循環(循環次數確定)
兩者可以相互轉換
當循環次數確定時,使用for循環
當循環次數不確定時,使用while循環
五、二重循環
for(表達式1;表達式2;表達式3){//外層循環
for(表達式1;表達式2;表達式3){//內層循環
}
}
要點:①在循環體內含有一個循環語句的循環稱為二重循環
②當外循環執行一次,內循環要循環完畢,再回到外循環進入下一次循環,直到外循環執行完畢為止
例題:實現輸出*號的三角形陣列共9行,第一行輸出1顆*,第二行輸出2顆*…第9行輸出9顆*
1 public class dowhileforDemo{ 2 public static void main(String []args) 3 { 4 //實現輸出*號的三角形陣列共9行,第一行輸出1顆*,第二行輸出2顆*…第9行輸出9顆* 5 for(int i=1;i<=9;i++) 6 { 7 //外循環控制打印行數 8 for(int j=1;j<=i;j++) 9 { 10 //內循環控制打印的*個數 11 System.out.print("*"); 12 } 13 System.out.println(); 14 } 15 } 16 } View Code