更新時間:2021-10-13 來源:黑馬程序員 瀏覽量:
循環(huán)語句可以在滿足循環(huán)條件的情況下,反復執(zhí)行某一段代碼,這段被重復執(zhí)行的代碼被稱為循環(huán)體語句,當反復
執(zhí)行這個循環(huán)體時,需要在合適的時候把循環(huán)判斷條件修改為false,從而結束循環(huán),否則循環(huán)將一直執(zhí)行下去,形成死循環(huán)。
for循環(huán)格式:
for (初始化語句;條件判斷語句;條件控制語句) { 循環(huán)體語句; }
格式解釋:
初始化語句: 用于表示循環(huán)開啟時的起始狀態(tài),簡單說就是循環(huán)開始的時候什么樣
條件判斷語句:用于表示循環(huán)反復執(zhí)行的條件,簡單說就是判斷循環(huán)是否能一直執(zhí)行下去
循環(huán)體語句: 用于表示循環(huán)反復執(zhí)行的內容,簡單說就是循環(huán)反復執(zhí)行的事情
條件控制語句:用于表示循環(huán)執(zhí)行中每次變化的內容,簡單說就是控制循環(huán)是否能執(zhí)行下去
執(zhí)行流程:
①執(zhí)行初始化語句
②執(zhí)行條件判斷語句,看其結果是true還是false,如果是false,循環(huán)結束,如果是true,繼續(xù)執(zhí)行
③執(zhí)行循環(huán)體語句
④執(zhí)行條件控制語句
⑤回到②繼續(xù)
for循環(huán):輸出數據
需求:在控制臺輸出1-5和5-1的數據
示例代碼:
public class ForTest01 { public static void main(String[] args) { //需求:輸出數據1-5 for(int i=1; i<=5; i++) { System.out.println(i); } System.out.println("--------"); //需求:輸出數據5-1 for(int i=5; i>=1; i- ) { System.out.println(i); } } }
for循環(huán):求和
需求:求1-5之間的數據和,并把求和結果在控制臺輸出
示例代碼:
public class ForTest02 { public static void main(String[] args) { //求和的最終結果必須保存起來,需要定義一個變量,用于保存求和的結果,初始值為0 int sum = 0; //從1開始到5結束的數據,使用循環(huán)結構完成 for(int i=1; i<=5; i++) { //將反復進行的事情寫入循環(huán)結構內部 // 此處反復進行的事情是將數據 i 加到用于保存最終求和的變量 sum 中 sum += i; /* sum += i; sum = sum + i; 第一次:sum = sum + i = 0 + 1 = 1; 第二次:sum = sum + i = 1 + 2 = 3; 第三次:sum = sum + i = 3 + 3 = 6; 第四次:sum = sum + i = 6 + 4 = 10; 第五次:sum = sum + i = 10 + 5 = 15; */ } //當循環(huán)執(zhí)行完畢時,將最終數據打印出來 System.out.println("1-5之間的數據和是:" + sum); } }
要點:今后遇到的需求中,如果帶有求和二字,請立即聯想到求和變量求和變量的定義位置,必須在循環(huán)外部,如果在循環(huán)內部則計算出的數據將是錯誤的。
for循環(huán):求偶數和
需求:求1-100之間的偶數和,并把求和結果在控制臺輸出 }
示例代碼:
public class ForTest03 { public static void main(String[] args) { //求和的最終結果必須保存起來,需要定義一個變量,用于保存求和的結果,初始值為0 int sum = 0; //對1-100的數據求和與1-5的數據求和幾乎完全一樣,僅僅是結束條件不同 for(int i=1; i<=100; i++) { //對1-100的偶數求和,需要對求和操作添加限制條件,判斷是否是偶數 if(i%2 == 0) { sum += i; } } //當循環(huán)執(zhí)行完畢時,將最終數據打印出來 System.out.println("1-100之間的偶數和是:" + sum); } }
for循環(huán)練習:水仙花
需求:在控制臺輸出所有的“水仙花數”
解釋:什么是水仙花數?
水仙花數,指的是一個三位數,個位、十位、百位的數字立方和等于原數
例如 153 3*3*3 + 5*5*5 + 1*1*1 = 153
思路:
1. 獲取所有的三位數,準備進行篩選,最小的三位數為100,最大的三位數為999,使用for循環(huán)獲取
2. 獲取每一個三位數的個位,十位,百位,做if語句判斷是否是水仙花數
示例代碼:
public class ForTest04 { public static void main(String[] args) { //輸出所有的水仙花數必然要使用到循環(huán),遍歷所有的三位數,三位數從100開始,到999結束 for(int i=100; i<1000; i++) { //在計算之前獲取三位數中每個位上的值 int ge = i%10; int shi = i/10%10; int bai = i/10/10%10; //判定條件是將三位數中的每個數值取出來,計算立方和后與原始數字比較是否相等 if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) { //輸出滿足條件的數字就是水仙花數 System.out.println(i); } } } }
for循環(huán)練習:統計水仙花數個數
需求:統計“水仙花數”一共有多少個,并在控制臺輸出個數
示例代碼:
public class ForTest05 { public static void main(String[] args) { //定義變量count,用于保存“水仙花數”的數量,初始值為0 int count = 0; //輸出所有的水仙花數必然要使用到循環(huán),遍歷所有的三位數,三位數從100開始,到999結束 for(int i=100; i<1000; i++) { //在計算之前獲取三位數中每個位上的值 int ge = i%10; int shi = i/10%10; int bai = i/10/10%10; //在判定水仙花數的過程中,滿足條件不再輸出,更改為修改count的值,使count+1 if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) { count++; } } //打印輸出最終結果 System.out.println("水仙花共有:" + count + "個"); } }
要點:今后如果需求帶有統計xxx,請先想到計數器變量計數器變量定義的位置,必須在循環(huán)外部。
猜你喜歡:
為什么要使用foreach循環(huán)?它有哪些優(yōu)點和局限性?