基于java中的流程控制語句總結(jié)(必看篇)
程序的結(jié)構(gòu)分類:
順序結(jié)構(gòu):按照寫代碼的順序 一次執(zhí)行
選擇結(jié)構(gòu):根據(jù)條件的不同有選擇的執(zhí)行不同的代碼
循環(huán)結(jié)構(gòu):在一定條件下 反復(fù)執(zhí)行某一片代碼
選擇結(jié)構(gòu):
也叫分支結(jié)構(gòu) 根據(jù)條件的不同,有選擇的執(zhí)行某一片代碼 ,Java提供了兩種 if結(jié)構(gòu) switch結(jié)構(gòu)
if分為三種格式:
if的第一種格式
if(條件){
語句塊
}
執(zhí)行流程:
先判斷條件, 如果為真 則語句塊執(zhí)行,否則 語句塊不執(zhí)行
代碼演示:
public static void main(String[] args) { System.out.println("開始"); // 定義兩個(gè)變量 int a = 10; int b = 20; if (a == b) { System.out.println("a等于b"); } int c = 10; if (a == c) { System.out.println("a等于c"); } System.out.println("結(jié)束"); }
if的第二種格式:
if(條件){
語句塊 1
}else{
語句塊2
}
執(zhí)行流程:
先判斷條件的真假, 如果為真 則只執(zhí)行語句塊1, 否則, 只執(zhí)行語句塊2
代碼演示:
public static void main(String[] args) { System.out.println("開始"); // 判斷給定的數(shù)據(jù)是奇數(shù)還是偶數(shù) // 定義變量 int a = 100; // 給a重新賦值 a = 99; if (a % 2 == 0) { System.out.println("a是偶數(shù)"); } else { System.out.println("a是奇數(shù)"); } System.out.println("結(jié)束"); }
if語句的第三種格式:
if(條件1){
語句塊1
}else if(條件2){
語句塊2
}else if(條件3){
語句塊3
}
...
else if(條件n){
語句塊n
}else{
語句塊n+1
}
執(zhí)行流程:
先判斷條件1,如果為真 則執(zhí)行語句塊1,執(zhí)行完畢,跳出整個(gè)if結(jié)構(gòu)執(zhí)行if下面的語句, 否則判斷條件2,
如果條件2為真,則執(zhí)行語句塊2,執(zhí)行完畢跳出
整個(gè)if結(jié)構(gòu)執(zhí)行if下面的語句, 如果條件2也為假,則判斷條件3,如果為真... 如果判斷到條件n都為假,
則執(zhí)行else中的語句塊n+1
代碼演示:
x和y的關(guān)系滿足如下:
x>=3 y = 2x + 1;
-1<=x<3 y = 2x;
x<=-1 y = 2x – 1;
根據(jù)給定的x的值,計(jì)算出y的值并輸出。
public static void main(String[] args) { int x = 5; int y; if (x >= 3) { y = 2 * x + 1; } else if (x >= -1 && x < 3) { y = 2 * x; } else { y = 2 * x - 1; } System.out.println("y的值是:"+y); }
選擇結(jié)構(gòu)switch
語法結(jié)構(gòu)
switch(表達(dá)式){
case 目標(biāo)值1:
語句塊1
break;
case 目標(biāo)值2:
語句塊2
break;
case 目標(biāo)值3:
語句塊3
break;
...
case 目標(biāo)值n:
語句塊n+1
break;
default:
語句塊n+1
break;
}
執(zhí)行流程:
先計(jì)算表達(dá)式的結(jié)果 A ,使用A順次的與對應(yīng)的目標(biāo)值進(jìn)行比較,一旦發(fā)現(xiàn)有相等的目標(biāo)值, 就停止比較,
執(zhí)行對應(yīng)的語句塊, 再執(zhí)行break跳出整個(gè)switch結(jié)構(gòu), 如果從上往下比較都沒有目標(biāo)值與A相等則執(zhí)行
語句塊n+1 結(jié)束switch
要求:
表達(dá)式: 表達(dá)式的結(jié)果,在JDK1.1~1.4時(shí)代 表達(dá)式的結(jié)果的數(shù)據(jù)類型 只能是 char byte short int
在JDK1.5~1.6時(shí)代 表達(dá)式的結(jié)果的數(shù)據(jù)類型 只能是 char byte short int enum(枚舉)
在JDK1.7+時(shí)代 表達(dá)式的結(jié)果的數(shù)據(jù)類型 只能是 char byte short int enum(枚舉) ,String(字符串)
目標(biāo)值:
目標(biāo)值的數(shù)據(jù)類型 與表達(dá)式結(jié)果的數(shù)據(jù)類型要匹配
目標(biāo)值 不能重復(fù)
代碼演示:
根據(jù)鍵盤錄入的數(shù)值1、2、3...7輸出對應(yīng)的星期一、星期二、星期三...星期日
public static void main(String[] args) { //創(chuàng)建鍵盤錄入對象 Scanner sc = new Scanner(System.in); //接收數(shù)據(jù) System.out.println("請輸入一個(gè)數(shù)字(1-7):"); int weekday = sc.nextInt(); //switch語句實(shí)現(xiàn)選擇 switch(weekday) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期日"); break; default: System.out.println("你輸入的數(shù)字有誤"); break; } }
循環(huán)結(jié)構(gòu):
同一件事反復(fù)做 , 反復(fù)執(zhí)行同一片代碼
循環(huán)的構(gòu)成:
初始化語句
循環(huán)出口(條件)
循環(huán)體
循環(huán)增量
有三種 循環(huán)結(jié)構(gòu):
for 循環(huán) while 循環(huán) do...while循環(huán)
for循環(huán):
語法格式:
for(初始化語句;條件;步進(jìn)表達(dá)式){
循環(huán)體
}
執(zhí)行流程:
第一步: 初始化語句
第二步: 判斷條件, 如果條件為真 則進(jìn)入第三步 ,條件為假則進(jìn)入第五步
第三步: 執(zhí)行循環(huán)體
第四步: 執(zhí)行步進(jìn)表達(dá)式 進(jìn)入第二步
第五步: 結(jié)束循環(huán)
代碼演示:
統(tǒng)計(jì)“水仙花數(shù)”共有多少個(gè)
所謂的水仙花數(shù)是指一個(gè)三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。
public static void main(String[] args) { //1.定義一個(gè)統(tǒng)計(jì)變量,初始值為0 int count = 0; //2.使用for循環(huán)獲取所有的三位數(shù) for(int x=100; x<1000; x++) { //3.拆分三位數(shù)的百位,十位,個(gè)位 int ge = x%10; int shi = x/10%10; int bai = x/10/10%10; //4.利用公式判斷這個(gè)三位數(shù)是否為水仙花數(shù),如果是,統(tǒng)計(jì)變量++ if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) { count++; } } //5.循環(huán)結(jié)束之后,打印統(tǒng)計(jì)結(jié)果 System.out.println("水仙花數(shù)共有:"+count+"個(gè)"); }
while 循環(huán):
語法結(jié)構(gòu):
初始化語句
while(條件){
循環(huán)體
步進(jìn)語句
}
執(zhí)行流程:
第一步: 初始化語句
第二步: 判斷條件, 如果條件為真, 則進(jìn)入第三步,如果條件為假, 則進(jìn)入第五步
第三步: 執(zhí)行循環(huán)體
第四步: 執(zhí)行步進(jìn)語句, 再進(jìn)入第二步
第五步: 結(jié)束循環(huán)
do ... while循環(huán)
語法格式:
初始化語句
do{
循環(huán)體
步進(jìn)語句
}while(條件)
執(zhí)行流程:
第一步: 初始化語句
第二步: 執(zhí)行循環(huán)體
第三步: 執(zhí)行步進(jìn)語句
第四步: 判斷條件,如果條件為真,進(jìn)入第二步, 否則進(jìn)入第五步
第五步: 結(jié)束循環(huán)
三種循環(huán)的區(qū)別:
雖然可以完成同樣的功能,但是還是有小區(qū)別:
do…while循環(huán)至少會執(zhí)行一次循環(huán)體。
for循環(huán)和while循環(huán)只有在條件成立的時(shí)候才會去執(zhí)行循環(huán)體
for循環(huán)語句和while循環(huán)語句的小區(qū)別:
使用區(qū)別:控制條件語句所控制的那個(gè)變量,在for循環(huán)結(jié)束后,
就不能再被訪問到了,而while循環(huán)結(jié)束還可以繼續(xù)使用,如果你想繼續(xù)使用,
就用while,否則推薦使用for。原因是for循環(huán)結(jié)束,該變量就從內(nèi)存中消失,
能夠提高內(nèi)存的使用效率。
循環(huán)使用推薦for -- while -- do..while
跳轉(zhuǎn)語句可以控制循環(huán)的執(zhí)行:
有兩種
break : 在循環(huán)中使用的時(shí)候 表示結(jié)束當(dāng)前循環(huán)
在switch語句中使用 表示跳出當(dāng)前的switch結(jié)構(gòu)
continue: 在循環(huán)中使用, 表示結(jié)束本次循環(huán) 進(jìn)行下一次循環(huán)
跳轉(zhuǎn)語句 脫離循環(huán)沒有意義
以上這篇基于java中的流程控制語句總結(jié)(必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用SpringBoot進(jìn)行身份驗(yàn)證和授權(quán)的示例詳解
在廣闊的 Web 開發(fā)世界中,身份驗(yàn)證是每個(gè)數(shù)字領(lǐng)域的守護(hù)者,在本教程中,我們將了解如何以本機(jī)方式保護(hù)、驗(yàn)證和授權(quán) Spring-Boot 應(yīng)用程序的用戶,并遵循框架的良好實(shí)踐,希望對大家有所幫助2023-11-11Java實(shí)現(xiàn)Windows計(jì)算器界面
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)Windows計(jì)算器界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06Spring Security基于散列加密方案實(shí)現(xiàn)自動登錄功能
為了提高項(xiàng)目的用戶體驗(yàn),我們可以在項(xiàng)目中添加自動登錄功能,當(dāng)然也要給用戶提供退出登錄的功能。接下來學(xué)習(xí)下Spring Security基于散列加密方案實(shí)現(xiàn)自動登錄功能,一起看看吧2021-09-09Maven中exec插件執(zhí)行Java程序的實(shí)現(xiàn)
在Maven項(xiàng)目中,可以使用Maven的插件來執(zhí)行Java程序,本文主要介紹了Maven中exec插件執(zhí)行Java程序的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12java 中序列化與readResolve()方法的實(shí)例詳解
這篇文章主要介紹了java 中序列化與readResolve()方法的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家理解這部分知識,需要的朋友可以參考下2017-08-08Java方法重載實(shí)現(xiàn)原理及代碼實(shí)例
這篇文章主要介紹了Java方法重載實(shí)現(xiàn)原理及代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Spring運(yùn)行時(shí)動態(tài)注冊bean的方法
這篇文章主要介紹了Spring運(yùn)行時(shí)動態(tài)注冊bean的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08springboot寶塔簡單部署的實(shí)現(xiàn)示例
通過使用Spring Boot,可以快速構(gòu)建出高效、可擴(kuò)展的應(yīng)用程序,而寶塔面板則提供了簡單易用的網(wǎng)站管理和維護(hù)工具,本文將詳細(xì)介紹如何將Spring Boot應(yīng)用程序與寶塔面板進(jìn)行集成,實(shí)現(xiàn)自動化部署、配置管理等操作2023-11-11