這篇文章給大家分享的是有關(guān)Java中循環(huán)結(jié)構(gòu)的用法示例的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
在豐都等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),豐都網(wǎng)站建設(shè)費(fèi)用合理。文本關(guān)鍵字:基本結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、while、do-while、for
為了講解方便,我們可以將循環(huán)結(jié)構(gòu)劃分為四個(gè)部分來進(jìn)行描述。當(dāng)然,這四個(gè)部分并不是都要出現(xiàn),甚至在都不出現(xiàn)時(shí)也可以構(gòu)成一個(gè)循環(huán)結(jié)構(gòu)。并且,對于不同的循環(huán)結(jié)構(gòu),每個(gè)部分的相對位置也不同。
在進(jìn)入循環(huán)結(jié)構(gòu)之前可以定義一些循環(huán)中以及循環(huán)結(jié)束后都要用到的變量,進(jìn)行賦值。
用于決定是否繼續(xù)進(jìn)行循環(huán),如果為假,則循環(huán)結(jié)束。判斷部分可以直接使用一個(gè)布爾類型的變量,或者使用表達(dá)式,但是必須保證表達(dá)式的結(jié)果為布爾類型。
循環(huán)結(jié)構(gòu)的核心部分,用于書寫每次想要重復(fù)執(zhí)行的代碼,通常要根據(jù)程序功能來設(shè)計(jì)。
用于輔助控制循環(huán)的結(jié)束,在循環(huán)體之后執(zhí)行,如變量自增等。
與判斷結(jié)構(gòu)類似,當(dāng)不使用大括號(hào)時(shí),循環(huán)結(jié)構(gòu)只能控制一行代碼,通常我們會(huì)添加大括號(hào)
[初始化部分] while(條件判斷部分){ 循環(huán)體 [迭代部分] }
對于while循環(huán),通常用于循環(huán)次數(shù)不確定時(shí),如:讓使用者決定什么時(shí)候退出循環(huán)。
可以用一個(gè)布爾變量直接來決定循環(huán)是否繼續(xù)
可以用break關(guān)鍵字隨時(shí)跳出循環(huán)
當(dāng)條件判斷部分不成立時(shí)結(jié)束循環(huán)
初始化部分和迭代部分可以省略
條件判斷部分后如果出現(xiàn)分號(hào)會(huì)導(dǎo)致結(jié)構(gòu)直接結(jié)束
循環(huán)輸出1到9
public static void main(String[] args){ // 初始化部分 int i = 1; // 括號(hào)中為循環(huán)繼續(xù)執(zhí)行的條件:當(dāng)i的值小于等于9時(shí) while(i <= 9){ // 循環(huán)體部分 System.out.println(i); // 迭代部分:輔助控制循環(huán)結(jié)束或根據(jù)循環(huán)體的需要來寫 i++; } }
猜字程序
import java.util.Scanner; import java.util.Random; public class Test{ public static void main(String[] args){ // 初始化Scanner,用于從鍵盤讀入數(shù)據(jù) Scanner sc = new Scanner(System.in); // 初始化隨機(jī)數(shù)生成工具 Random random = new Random(); // 隨機(jī)生成一個(gè)0~99的整數(shù) int n = random.nextInt(100); // 定義一個(gè)布爾類型的變量,用于控制循環(huán)的結(jié)束 boolean flag = true; // 使用flag作為控制循環(huán)結(jié)束的變量 while(flag){ System.out.println("請輸入一個(gè)數(shù):"); // 從鍵盤讀取一個(gè)數(shù) int temp = sc.nextInt(); // 判斷輸入的數(shù)是否與隨機(jī)數(shù)相同,猜中則退出 if(temp == n){ System.out.println("猜中了!"); // 修改flag為false,使得循環(huán)退出 flag = false; }else{ // 如果沒有猜中,就讓用戶自己決定是不是要繼續(xù)猜 System.out.println("猜錯(cuò)了!還要繼續(xù)嗎?1:繼續(xù)2:退出"); // 如果輸入的數(shù)字為2則退出(此處暫不考慮輸入出錯(cuò)等其他情況) if(sc.nextInt() == 2){ // 修改flag為false,使得循環(huán)退出 flag = false; } } } // 使用后關(guān)閉 sc.close(); } }
[初始化部分] do{ 循環(huán)體 [迭代部分] }while(條件判斷部分);
do-while循環(huán)與while循環(huán)的用法基本相同,主要的不同點(diǎn)在于循環(huán)體(迭代部分)一定會(huì)先執(zhí)行一次,然后再進(jìn)行判斷,這非常適合在初學(xué)時(shí)做成菜單程序。
可以用一個(gè)布爾變量直接來決定循環(huán)是否繼續(xù)
可以用break關(guān)鍵字隨時(shí)跳出循環(huán)
當(dāng)條件判斷部分不成立時(shí)結(jié)束循環(huán)
初始化部分和迭代部分可以省略
菜單程序
break只能跳出離自己最近一層的switch-case或循環(huán)結(jié)構(gòu),如果想直接跳出指定層的循環(huán),需要使用到自定義標(biāo)簽。自定義標(biāo)簽的用法比較簡單,直接在一個(gè)循環(huán)結(jié)構(gòu)的起始位置加一個(gè)單詞,配合冒號(hào)使用,在進(jìn)行跳出時(shí),可以在break后面添加自定義標(biāo)簽的名稱,即可跳出指定層的循環(huán)。
import java.util.Scanner; public class Test{ public static void main(String[] args){ // 初始化Scanner,用于從鍵盤讀入數(shù)據(jù) Scanner sc = new Scanner(System.in); // 在此處使用自定義標(biāo)簽out(名稱可以自定義)來進(jìn)行標(biāo)記 out:do{ System.out.println("****歡迎使用xxx系統(tǒng)****"); System.out.println("****1.系統(tǒng)功能一*******"); System.out.println("****2.系統(tǒng)功能二*******"); System.out.println("****3.退出系統(tǒng)*********"); System.out.print("請輸入功能選項(xiàng):"); // 從鍵盤讀入一個(gè)數(shù)選擇要執(zhí)行的功能 int select = sc.nextInt(); switch(select){ case 1: // 功能一相關(guān)代碼 break; case 2: // 功能二相關(guān)代碼 break; case 3: // 指定跳出外層的do-while循環(huán),否則只能跳出當(dāng)前的switch-case結(jié)構(gòu) break out; } // 判斷條件一直為真,除非用戶輸入選項(xiàng)3退出系統(tǒng),則使用break跳出。 }while(true); // 使用后關(guān)閉 sc.close(); } }
for(初始化部分;條件判斷部分;迭代部分){ 循環(huán)體 }
for循環(huán)主要用于循環(huán)次數(shù)確定的情況,通常使用break直接跳出循環(huán)是由于已經(jīng)完成了所需工作,終止剩余無用循環(huán)以提高程序運(yùn)行效率。
for循環(huán)的一個(gè)明顯特點(diǎn)在于初始化部分,迭代部分的控制比較方便,可以完全在循環(huán)內(nèi)部完成
初始化部分寫在小括號(hào)中第一個(gè)位置,只會(huì)執(zhí)行一次
如果在初始化部分聲明一個(gè)新的變量,則該變量只能在循環(huán)內(nèi)部使用
判斷條件出現(xiàn)在小括號(hào)的中間位置,可以是布爾類型的變量或表達(dá)式,也可以直接省略使用break關(guān)鍵字手動(dòng)跳出
迭代部分通常用于變量的控制,每次循環(huán)體結(jié)束后執(zhí)行
continue關(guān)鍵字可以用于所有的循環(huán)結(jié)構(gòu),作用是立即結(jié)束當(dāng)前循環(huán)(跳過循環(huán)體的剩余部分內(nèi)容,迭代部分依然會(huì)執(zhí)行),進(jìn)入下一次循環(huán)
計(jì)算整數(shù)1~10的加和
public static void main(String[] args){ // 定義一個(gè)整數(shù)類型變量,用于記錄結(jié)果 int sum = 0; for(int i = 1;i <= 10;i++){ // 根據(jù)邏輯,將每次得到的值相加 sum += i; } // 輸出計(jì)算結(jié)果 System.out.println(sum); }
輸出整數(shù)0~100范圍內(nèi)的所有偶數(shù)
public static void main(String[] args){ for(int i = 0;i <= 100;i++){ // 判斷當(dāng)前數(shù)字的奇偶性,如果是奇數(shù)則跳過輸出語句 if(i % 2 != 0){ // 如果是奇數(shù),將跳過循環(huán)體剩余的部分,迭代部分不受影響 continue; } System.out.println(i); } // 輸出計(jì)算結(jié)果 System.out.println(sum); }
死循環(huán)的出現(xiàn)是由于我們沒有正確的指定循環(huán)的終止條件和控制相關(guān)的變量,導(dǎo)致判斷條件部分一直為真,使得循環(huán)結(jié)構(gòu)無法結(jié)束。但有些時(shí)候根據(jù)功能需要我們會(huì)手動(dòng)先構(gòu)造一個(gè)死循環(huán),然后使用break來進(jìn)行跳出,如:菜單程序,由用戶來決定什么時(shí)候結(jié)束,進(jìn)行循環(huán)的跳出。手動(dòng)構(gòu)建一個(gè)死循環(huán)十分簡單,但是如果意外的出現(xiàn)死循環(huán)就需要優(yōu)先檢查條件判斷部分以及相關(guān)變量的變化了。
while(true){ 循環(huán)體 }
do{ 循環(huán)體 }while(true)
// 是的,你沒有看錯(cuò),所有的部分都不需要填寫,但是分號(hào)不能省略 for(;;){ 循環(huán)體 }
感謝各位的閱讀!關(guān)于“Java中循環(huán)結(jié)構(gòu)的用法示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。