生活中有循環,比如周而復始的生活工作,上課,比如密碼的重複校驗,而程序世界同樣存在着循環。
循環的特點:
重複做類似的事情,而且有終止條件。
類似於這樣的情況,Java早就爲我們提供了相關的技術解決方案。
for while do while
一、For循環
1.語法格式:
for(初始化語句;條件判斷語句;條件控制語句){
循環體語句;
}
2.執行流程
a、執行初始化語句
b、執行條件判斷語句,看其結果是true還是false
如果是false,循環結束;
如果是true,繼續執行;
c、執行循環體語句
d、執行條件控制語句
e、回到2繼續
public static void main(String[] args){
//循環,重複做事情
/*
for(初始化語句;條件判斷語句;條件控制語句) {
循環體語句;
}
初始化語句:從哪開始 1
條件判斷語句:到哪結束 10
條件控制語句:怎麼從開始走到結束的
循環體語句:重複做的事情
*/
//定義在for循環裏面的變量,其作用域就僅限在for循環裏面
for(int i = 1;i<=1;i++){
System.out.println(i+":只要我努力,就一定能成功!!!");
}
//System.out.println(i);//101
//10---1
for(int i=10;i>=1;i--){
System.out.println(i);
}
}
總結:
for循環的特點,適合於如下的循環情況:
1.有規律的
2.重複的
3.循環次數可預見
二、While循環
1.while循環語句格式:
語法格式
初始化語句;
while(判斷條件語句){
循環體語句;
控制條件語句;
}
//while 循環次數是不可預見
//我的夢想,
/*
int target = 10000000;
//關係表達式?表達式1:表達式2
int month = target%3000==0?target/3000:target/3000+1;
System.out.println(month);
*/
//如果每個月都比上個月多存1000,又怎麼求解
//month--需要存幾個月
/*
int month = 0;
//目前存的錢
int sum = 0;
//初始的基數
int basic = 3000;
while(sum<10000000){
sum += basic;
month++;
//下個月存的基數會比上個月多1000
basic += 1000;
}
System.out.println(month);
*/
三、do While 循環
do…while循環語句格式:
初始化語句:
do{
循環體語句;
控制條件語句;
}while(判斷條件語句);
//do-while
//案例一:實現可以無限次錄入學員信息的功能,通過指令來控制是否繼續(y/n)
//重複做的事:錄入學員信息的功能
//循環的條件:輸入的指令是y
/*
do{
重複做的事
條件控制語句
}while(條件);
*/
/*
Scanner input = new Scanner(System.in);
int isContinue = 0;
do{
System.out.println("請輸入學員信息");
System.out.println("模擬正在錄入。。。");
System.out.println("是否繼續錄入?(y/n 1/0)");
isContinue = input.nextInt();
}while(isContinue == 1);
System.out.println("歡迎下次繼續使用");
*/
四、嵌套循環
public static void main(String[] args){
/*
打印一個3行4列的長方形,如下圖。逐步來實現
****
****
****
*/
for(int j=1;j<=8;j++){//外層循環:控制行數
for(int i=1;i<=6;i++){//內層循環:控制列數
System.out.print("*");
}
System.out.println();
}
}
五、break,continue,return
break:跳出當前循環體
continue:結束當前循環繼續下一次循環
return:被調函數回到主函數繼續執行,返回時可附帶一個返回值。