首頁技術(shù)文章正文

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

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

IT培訓(xùn)班


循環(huán)語句可以在滿足循環(huán)條件的情況下,反復(fù)執(zhí)行某一段代碼,這段被重復(fù)執(zhí)行的代碼被稱為循環(huán)體語句,當(dāng)反復(fù) 執(zhí)行這個循環(huán)體時,需要在合適的時候把循環(huán)判斷條件修改為false,從而結(jié)束循環(huán),否則循環(huán)將一直執(zhí)行下去,形成死循環(huán)。
for循環(huán)格式:

for (初始化語句;條件判斷語句;條件控制語句) {
循環(huán)體語句;
}

格式解釋:

初始化語句: 用于表示循環(huán)開啟時的起始狀態(tài),簡單說就是循環(huán)開始的時候什么樣

條件判斷語句:用于表示循環(huán)反復(fù)執(zhí)行的條件,簡單說就是判斷循環(huán)是否能一直執(zhí)行下去

循環(huán)體語句: 用于表示循環(huán)反復(fù)執(zhí)行的內(nèi)容,簡單說就是循環(huán)反復(fù)執(zhí)行的事情

條件控制語句:用于表示循環(huán)執(zhí)行中每次變化的內(nèi)容,簡單說就是控制循環(huán)是否能執(zhí)行下去

執(zhí)行流程:

①執(zhí)行初始化語句

②執(zhí)行條件判斷語句,看其結(jié)果是true還是false,如果是false,循環(huán)結(jié)束,如果是true,繼續(xù)執(zhí)行

③執(zhí)行循環(huán)體語句

④執(zhí)行條件控制語句

⑤回到②繼續(xù)

for循環(huán):輸出數(shù)據(jù)

需求:在控制臺輸出1-5和5-1的數(shù)據(jù)

示例代碼:

public class ForTest01 {
public static void main(String[] args) {
//需求:輸出數(shù)據(jù)1-5
for(int i=1; i<=5; i++) {
System.out.println(i);
}
System.out.println("--------");
//需求:輸出數(shù)據(jù)5-1
for(int i=5; i>=1; i- ) {
System.out.println(i);
}
}
}


for循環(huán):求和

需求:求1-5之間的數(shù)據(jù)和,并把求和結(jié)果在控制臺輸出

示例代碼:

public class ForTest02 {
public static void main(String[] args) {
//求和的最終結(jié)果必須保存起來,需要定義一個變量,用于保存求和的結(jié)果,初始值為0
int sum = 0;
//從1開始到5結(jié)束的數(shù)據(jù),使用循環(huán)結(jié)構(gòu)完成
for(int i=1; i<=5; i++) {
//將反復(fù)進(jìn)行的事情寫入循環(huán)結(jié)構(gòu)內(nèi)部
// 此處反復(fù)進(jìn)行的事情是將數(shù)據(jù) 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;
*/
}
//當(dāng)循環(huán)執(zhí)行完畢時,將最終數(shù)據(jù)打印出來
System.out.println("1-5之間的數(shù)據(jù)和是:" + sum);
}
}

要點:今后遇到的需求中,如果帶有求和二字,請立即聯(lián)想到求和變量求和變量的定義位置,必須在循環(huán)外部,如果在循環(huán)內(nèi)部則計算出的數(shù)據(jù)將是錯誤的。

for循環(huán):求偶數(shù)和

需求:求1-100之間的偶數(shù)和,并把求和結(jié)果在控制臺輸出 }

示例代碼:

public class ForTest03 {
public static void main(String[] args) {
//求和的最終結(jié)果必須保存起來,需要定義一個變量,用于保存求和的結(jié)果,初始值為0
int sum = 0;
//對1-100的數(shù)據(jù)求和與1-5的數(shù)據(jù)求和幾乎完全一樣,僅僅是結(jié)束條件不同
for(int i=1; i<=100; i++) {
//對1-100的偶數(shù)求和,需要對求和操作添加限制條件,判斷是否是偶數(shù)
if(i%2 == 0) {
sum += i;
}
}
//當(dāng)循環(huán)執(zhí)行完畢時,將最終數(shù)據(jù)打印出來
System.out.println("1-100之間的偶數(shù)和是:" + sum);
}
}


for循環(huán)練習(xí):水仙花

需求:在控制臺輸出所有的“水仙花數(shù)”

解釋:什么是水仙花數(shù)?

水仙花數(shù),指的是一個三位數(shù),個位、十位、百位的數(shù)字立方和等于原數(shù)

例如 153 3*3*3 + 5*5*5 + 1*1*1 = 153

思路:

1. 獲取所有的三位數(shù),準(zhǔn)備進(jìn)行篩選,最小的三位數(shù)為100,最大的三位數(shù)為999,使用for循環(huán)獲取

2. 獲取每一個三位數(shù)的個位,十位,百位,做if語句判斷是否是水仙花數(shù)

示例代碼:

public class ForTest04 {
public static void main(String[] args) {
//輸出所有的水仙花數(shù)必然要使用到循環(huán),遍歷所有的三位數(shù),三位數(shù)從100開始,到999結(jié)束
for(int i=100; i<1000; i++) {
//在計算之前獲取三位數(shù)中每個位上的值
int ge = i%10;
int shi = i/10%10;
int bai = i/10/10%10;
//判定條件是將三位數(shù)中的每個數(shù)值取出來,計算立方和后與原始數(shù)字比較是否相等
if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
//輸出滿足條件的數(shù)字就是水仙花數(shù)
System.out.println(i);
}
}
}
}


for循環(huán)練習(xí):統(tǒng)計水仙花數(shù)個數(shù)

需求:統(tǒng)計“水仙花數(shù)”一共有多少個,并在控制臺輸出個數(shù)

示例代碼:

public class ForTest05 {
public static void main(String[] args) {
//定義變量count,用于保存“水仙花數(shù)”的數(shù)量,初始值為0
int count = 0;
//輸出所有的水仙花數(shù)必然要使用到循環(huán),遍歷所有的三位數(shù),三位數(shù)從100開始,到999結(jié)束
for(int i=100; i<1000; i++) {
//在計算之前獲取三位數(shù)中每個位上的值
int ge = i%10;
int shi = i/10%10;
int bai = i/10/10%10;
//在判定水仙花數(shù)的過程中,滿足條件不再輸出,更改為修改count的值,使count+1
if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
count++;
}
}
//打印輸出最終結(jié)果
System.out.println("水仙花共有:" + count + "個");
}
}

要點:今后如果需求帶有統(tǒng)計xxx,請先想到計數(shù)器變量計數(shù)器變量定義的位置,必須在循環(huán)外部。





猜你喜歡:

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

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

InputFormat接口的定義代碼如何設(shè)置?

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

黑馬程序員java培訓(xùn)班課程全新升級

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