首頁技術文章正文

怎樣執(zhí)行for循環(huán)語句?for循環(huán)語句執(zhí)行流程

更新時間:2021-10-13 來源:黑馬程序員 瀏覽量:

IT培訓班


循環(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)外部。





猜你喜歡:

Java中的for循環(huán)嵌套

為什么要使用foreach循環(huán)?它有哪些優(yōu)點和局限性?

InputFormat接口的定義代碼如何設置?

Java 循環(huán)結構語句介紹【while、do… while、for】

黑馬程序員java培訓班課程全新升級

分享到:
在線咨詢 我要報名
和我們在線交談!