java嵌套循环语句_Java学习笔记(七) 循环语句
一、for循環(huán)語句
1.1 循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)的組成:
初始語句:用于表示循環(huán)開啟的起始狀態(tài),簡(jiǎn)單說就是循環(huán)開始的時(shí)候什么樣
條件判斷語句:用于表示循環(huán)反復(fù)執(zhí)行的條件,簡(jiǎn)單說就是判斷循環(huán)是否能一直執(zhí)行下去
循環(huán)體語句:用于表示循環(huán)反復(fù)執(zhí)行的內(nèi)容,簡(jiǎn)單說就是循環(huán)反復(fù)執(zhí)行的事情
條件控制語句:用于表示循環(huán)執(zhí)行中每次變化的內(nèi)容,簡(jiǎn)單說就是控制循環(huán)是否能執(zhí)行下去
循環(huán)結(jié)構(gòu)對(duì)應(yīng)的語法:
初始化語句:這里可以是一條或者多條語句,這些語句可以完成一些初始化操作
條件判斷語句:這里使用一個(gè)結(jié)果值為boolean類型的表達(dá)式,這個(gè)表達(dá)式能決定是否執(zhí)行循環(huán)體。例如:a<3
循環(huán)體語句:這里可以是任意語句,這些語句將反復(fù)執(zhí)行
條件控制語句:這里通常是使用一條語句來改變變量的值,從而達(dá)到控制循環(huán)是否繼續(xù)向下執(zhí)行的效果。常見i++,i--這樣的操作
1.2 for循環(huán)語句格式
執(zhí)行流程:
執(zhí)行初始化語句
執(zhí)行條件判斷語句,看其結(jié)果是true還是false
如果是false,循環(huán)結(jié)束
如果是true,繼續(xù)執(zhí)行
執(zhí)行循環(huán)語體語句
執(zhí)行條件控制語句
回到2繼續(xù)
案例:輸出數(shù)據(jù)
/*輸出數(shù)據(jù)
需求:在控制臺(tái)輸出1-5和5-1的數(shù)據(jù)*/
public classDemo{public static voidmain(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);
}
}
}
案例:求和
/*求和
需求:求1-5之間的數(shù)據(jù)和,并把求和結(jié)果在控制臺(tái)輸出*/
public classDemo{public static voidmain(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;
}//當(dāng)循環(huán)執(zhí)行完畢時(shí),將最終數(shù)據(jù)打印出來
System.out.println("1-5之間的數(shù)據(jù)和是:"+sum);
}
}
案例:求偶數(shù)和
/*求偶數(shù)和
需求:求1-100之間的偶數(shù)和,并把求和結(jié)果在控制臺(tái)輸出*/
public classDemo{public static voidmain(String[] args) {//求和的最終結(jié)果必須保存起來,需要定義一個(gè)變量,用于保存求和的結(jié)果,初始值為0
int sum=0;//從1-100的偶數(shù)求和,使用循環(huán)結(jié)構(gòu)完成
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);
}
}
案例:水仙花
/*水仙花
需求:在控制臺(tái)輸出所有的“水仙花數(shù)”
水仙花數(shù):
1.水仙花數(shù)是一個(gè)三位數(shù)
2.水仙花數(shù)的個(gè)位、十位、百位的數(shù)字立方和等于原數(shù)*/
public classDemo{public static voidmain(String[] args) {//輸出所有的水仙花數(shù)必須要使用循環(huán),遍歷所有的三位數(shù),三位數(shù)從100開始到99結(jié)束
for(int i=100; i<1000; i++){//在計(jì)算之前獲取三位數(shù)中每個(gè)位上的值
int ge = i%10;int shi = i/10%10;int bai = i/100%10;//判定條件是將三位數(shù)中的每個(gè)數(shù)值取出來,計(jì)算立方后與原始數(shù)值比較是否相等
if(ge*ge*ge+shi*shi*shi+bai*bai*bai ==i){//輸出滿足條件的數(shù)字就是水仙花數(shù)
System.out.println(i);
}
}
}
}
二、while循環(huán)語句
2.1 while循環(huán)語句格式
? ??
執(zhí)行流程:
執(zhí)行初始化語句
執(zhí)行條件判斷語句,看其結(jié)果是true還是false
如果是false,循環(huán)結(jié)束
如果是true,繼續(xù)執(zhí)行
執(zhí)行循環(huán)體語句
執(zhí)行條件控制語句
回到2繼續(xù)
案例:珠穆朗瑪峰
/*珠穆朗瑪峰
需求:世界最高山峰是珠穆朗瑪峰(8844.43米=8844430毫米),假如我有一張足夠大的紙,它的厚度是0.1毫米。
請(qǐng)問,我折疊多少次,可以折成珠穆朗瑪峰的高度?*/
public classDemo{public static voidmain(String[] args) {//定義一個(gè)計(jì)數(shù)器,初始值為0
int count = 0;//定義紙張厚度
double paper = 0.1;//定義珠穆朗瑪峰的高度
int zf = 884430;//因?yàn)橐磸?fù)折疊,所以要使用循環(huán),但是不知道要折疊多少次,這種情況下更適合使用while循環(huán)//折疊過程中當(dāng)紙張厚度大于珠峰就停止了,因此繼續(xù)執(zhí)行的要求是紙張厚度小于珠峰高度
while(paper <=zf){//循環(huán)的執(zhí)行過程中每次紙張折疊,紙張的厚度要加倍
paper *= 2;//在循環(huán)中執(zhí)行累加,對(duì)應(yīng)折疊了多少次
count++;
}//打印計(jì)數(shù)器的值
System.out.println("需要折疊: "+count+"次");
}
}
三、do...while循環(huán)語句
3.1 do...while循環(huán)語句格式
執(zhí)行流程:
執(zhí)行初始化語句
執(zhí)行循環(huán)體語句
執(zhí)行條件控制語句
執(zhí)行條件判斷語句,看其結(jié)果是true還是false
如果是false,循環(huán)結(jié)束
如果是true,繼續(xù)執(zhí)行
回到2繼續(xù)
3.2 三種循環(huán)的區(qū)別
三種循環(huán)的區(qū)別:
for循環(huán)和while循環(huán)先判斷條件是否成立,然后決定是否執(zhí)行循環(huán)體(先判斷后執(zhí)行)
do...while循環(huán)先執(zhí)行一次循環(huán)體,然后判斷條件是否成立,是否繼續(xù)執(zhí)行循環(huán)體(先執(zhí)行后判斷)
for和while的區(qū)別:
條件控制語句所控制的自增變量,因?yàn)闅w屬for循環(huán)的語法結(jié)構(gòu)中,在for循環(huán)結(jié)束后,就不能再次被訪問到了
條件控制語句所控制的自增變量,對(duì)于while循環(huán)來說不歸屬其語法結(jié)構(gòu)中,在while循環(huán)結(jié)束后,該變量還可以繼續(xù)使用
死循環(huán)格式:
for(;;) { }
while(true) { }
do { } while(ture);
while的死循環(huán)格式是最常用的
命令提示符窗口中Ctrl+C可以結(jié)束死循環(huán)
四、跳轉(zhuǎn)控制語句
4.1 跳轉(zhuǎn)控制語句的概述
continue 用在循環(huán)中,基于條件控制,跳過某次循環(huán)體內(nèi)容的執(zhí)行,繼續(xù)下一次的執(zhí)行
break? ? ?用在循環(huán)中,基于條件控制,終止循環(huán)體內(nèi)容的執(zhí)行,也就是說結(jié)束當(dāng)前的整個(gè)循環(huán)
五、循環(huán)嵌套
5.1 循環(huán)嵌套的概述
語句結(jié)構(gòu):
順序語句? ? 以分號(hào)結(jié)尾,表示一句話的結(jié)束
分支語句? ? 一對(duì)大括號(hào)表示if的整體結(jié)構(gòu),整體描述一個(gè)完整的if語句
一對(duì)大括號(hào)表示switch的整體結(jié)構(gòu),整體描述一個(gè)完整的switch語句
循環(huán)語句? ? 一對(duì)大括號(hào)表示for的整體結(jié)構(gòu),整體描述一個(gè)完整的for語句
一對(duì)大括號(hào)表示while的整體結(jié)構(gòu),整體描述一個(gè)完整的while語句
do...while以分號(hào)結(jié)尾,整體描述一個(gè)完整的do...while語句
任何語句對(duì)外都可以看成是一句話,一句代碼
分支語句中包含分支語句成為分支嵌套
循環(huán)語句中包含循環(huán)語句成為循環(huán)嵌套
/*循環(huán)嵌套:
循環(huán)語句中包含循環(huán)語句
需求:
在控制臺(tái)輸出一天的小時(shí)和分鐘
分鐘和小時(shí)的范圍:
分鐘:0 <= minute < 60
小時(shí):0 <= hour < 24*/
public classDemo{public static voidmain(String[] args) {//外循環(huán)控制小時(shí)的范圍,內(nèi)循環(huán)控制分鐘的范圍
for(int hour = 0;hour < 24; hour++){for(int minute = 0;minute < 60; minute++){
System.out.println(hour+"時(shí)"+minute+"分");
}
System.out.println("-----------");
}
}
}
六、Random
6.1 Random的作用和使用步驟
作用:用于產(chǎn)生一個(gè)隨機(jī)數(shù)
使用步驟:
導(dǎo)包
創(chuàng)建對(duì)象
獲取隨機(jī)數(shù)
//獲取一個(gè)1-100之間的隨機(jī)數(shù)
Random r= newRandom();int x = r.nextInt(100)+1;
案例:猜數(shù)字
/*猜數(shù)字
需求:
程序自動(dòng)生成一個(gè)1-100之間的數(shù)字,使用程序?qū)崿F(xiàn)猜出這個(gè)數(shù)字是多少?
當(dāng)猜錯(cuò)的時(shí)候根據(jù)不同情況給出相應(yīng)的提示:
如果猜的數(shù)字比真實(shí)數(shù)字大,提示你猜的數(shù)據(jù)大了;
如果猜的數(shù)字比真實(shí)數(shù)字小,提示你猜的數(shù)據(jù)小了;
如果猜的數(shù)字與真實(shí)數(shù)字相等,提示恭喜你猜中了。*/
importjava.util.Random;importjava.util.Scanner;public classDemo{public static voidmain(String[] args) {//要完成猜數(shù)字的游戲,首先需要有一個(gè)1-100之間的隨機(jī)數(shù)
Random r = newRandom();int number = r.nextInt(100)+1;while(true){//使用程序?qū)崿F(xiàn)猜數(shù)字,每次均要輸入猜測(cè)的數(shù)字值,需要使用鍵盤錄入實(shí)現(xiàn)
Scanner sc = newScanner(System.in);//比較輸入的數(shù)字和系統(tǒng)產(chǎn)生的數(shù)據(jù),需要使用分支語句。這里使用if...else ... if...格式,根據(jù)不同情況進(jìn)行猜測(cè)結(jié)果顯示
System.out.println("請(qǐng)輸入你要猜的數(shù)字(1-100):");int gussNumber =sc.nextInt();if(gussNumber>number)
System.out.println("你猜的數(shù)字"+gussNumber+"大了");else if(gussNumber
System.out.println("你猜的數(shù)字"+gussNumber+"小了");else{
System.out.println("恭喜你猜中了");break;
}
sc.close();
}
}
}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java嵌套循环语句_Java学习笔记(七) 循环语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web.xml 中的listener、
- 下一篇: Java多线程同步Synchronize