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

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

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

IT培訓(xùn)班


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

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

格式解釋:

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

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

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

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

執(zhí)行流程:

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

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

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

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

⑤回到②繼續(xù)

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

需求:在控制臺(tái)輸出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é)果在控制臺(tái)輸出

示例代碼:

public class ForTest02 {
public static void main(String[] args) {
//求和的最終結(jié)果必須保存起來,需要定義一個(gè)變量,用于保存求和的結(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í),將最終數(shù)據(jù)打印出來
System.out.println("1-5之間的數(shù)據(jù)和是:" + sum);
}
}

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

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

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

示例代碼:

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


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

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

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

水仙花數(shù),指的是一個(gè)三位數(shù),個(gè)位、十位、百位的數(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. 獲取每一個(gè)三位數(shù)的個(gè)位,十位,百位,做if語(yǔ)句判斷是否是水仙花數(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++) {
//在計(jì)算之前獲取三位數(shù)中每個(gè)位上的值
int ge = i%10;
int shi = i/10%10;
int bai = i/10/10%10;
//判定條件是將三位數(shù)中的每個(gè)數(shù)值取出來,計(jì)算立方和后與原始數(shù)字比較是否相等
if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
//輸出滿足條件的數(shù)字就是水仙花數(shù)
System.out.println(i);
}
}
}
}


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

需求:統(tǒng)計(jì)“水仙花數(shù)”一共有多少個(gè),并在控制臺(tái)輸出個(gè)數(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++) {
//在計(jì)算之前獲取三位數(shù)中每個(gè)位上的值
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 + "個(gè)");
}
}

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





猜你喜歡:

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

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

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

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

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

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!