Java流程控制語(yǔ)句有哪些舉例詳解
流程控制語(yǔ)句
順序控制
從左邊往右邊去執(zhí)行,從上面往下面逐行的去執(zhí)行程序,不能先使用,在聲明
//正確的順序 int i = 10; System.out.println(i); //錯(cuò)誤的順序 System.out.println(i); int i = 20;
分支控制
- 單分支
- if(條件表達(dá)式){當(dāng)條件表達(dá)式為true的時(shí)候才會(huì)執(zhí)行的代碼}
int i = 10; if(i == 10){ System.out.println("i等于10");}//輸出i等于10
- 雙分支
- 為了使程序有多條路可以執(zhí)行,所以就有了雙分支
if(條件表達(dá)式){
當(dāng)條件表達(dá)式為true的時(shí)候才會(huì)執(zhí)行的代碼
}else{
當(dāng)條件表達(dá)式為false的時(shí)候才會(huì)執(zhí)行的代碼
}
- 為了使程序有多條路可以執(zhí)行,所以就有了雙分支
int i = 20; if(i == 10){ System.out.println("i等于10");}else{ System.out.println("i不等于10"); }//輸出i等于10
- 多分支
- 為了使程序有多條路可以執(zhí)行,所以就有了多分支
if(條件表達(dá)式1){
當(dāng)條件表達(dá)式1為true的時(shí)候才會(huì)執(zhí)行的代碼
} else if(條件表達(dá)式2){
當(dāng)條件表達(dá)式2為true的時(shí)候才會(huì)執(zhí)行的代碼}else{
當(dāng)條件表達(dá)式1和條件表達(dá)式2都為false的時(shí)候才會(huì)執(zhí)行的代碼
}
注意:多分支中,只要有一個(gè)條件表達(dá)式為true,那么后面的條件表達(dá)式就不會(huì)執(zhí)行了
- 為了使程序有多條路可以執(zhí)行,所以就有了多分支
int i = 50; if(i == 10){ System.out.println("i等于10");}else if(i == 20){ System.out.println("i等于20");}else{ System.out.println("i不等于10也不等于20");`}//輸出i不等于10也不等于20
- 嵌套分支
在一個(gè)分支的內(nèi)部又完整的嵌套了一個(gè)分支
int i = 50; if(i > 10){ if(i > 20){ }else{ } }else{ }else{ }
- 選擇語(yǔ)句
- switch case語(yǔ)句,是一種多分支語(yǔ)句,可以用來代替多個(gè)if else語(yǔ)句
注意:
1.表達(dá)式的數(shù)據(jù)類型,應(yīng)該是byte,short,int,char,enum(枚舉),String(字符串)
2.case子句中的值必須是常量,而不能是變量名或不確定的表達(dá)式值
3.同一個(gè)switch語(yǔ)句,所有case子句中的常量值互不相同
4.break語(yǔ)句用來在執(zhí)行完一個(gè)case分支后使程序跳出switch語(yǔ)句塊;如果沒有break,程序會(huì)順序執(zhí)行到switch結(jié)尾
5.default子句是可任選的。同時(shí),位置也是靈活的。當(dāng)沒有匹配的case時(shí),執(zhí)行default
語(yǔ)法:
switch(表達(dá)式){
case 常量1:
當(dāng)表達(dá)式的值等于常量1的時(shí)候才會(huì)執(zhí)行的代碼
break;
}
- switch case語(yǔ)句,是一種多分支語(yǔ)句,可以用來代替多個(gè)if else語(yǔ)句
int i = 10; switch(i){ case 10: System.out.println("i等于10"); break; case 20: System.out.println("i等于20");}
循環(huán)控制
四要素:循環(huán)初始化 循環(huán)條件 循環(huán)變量迭代 循環(huán)體(要循環(huán)的語(yǔ)句)
- for循環(huán)
語(yǔ)法:
for(循環(huán)變量初始化;循環(huán)條件;循環(huán)變量迭代){
循環(huán)的語(yǔ)句
}
for(int i = 1;i <= 10;i++){ System.out.println("i等于" + i); }
- while循環(huán)
語(yǔ)法:
循環(huán)變量初始化;
while(循環(huán)條件){
循環(huán)體;
循環(huán)變量迭代;
}
int i = 1; while(i <= 10){ System.out.println("i等于" + i); i++;//記得迭代,否則會(huì)死循環(huán) }
- do…while循環(huán)
- 語(yǔ)法:
循環(huán)變量初始化;
do{ 循環(huán)體;建議更新i值,否則會(huì)死循環(huán)}while(循環(huán)條件);
do…while循環(huán)和while循環(huán)的區(qū)別:do…while循環(huán)至少會(huì)執(zhí)行一次循環(huán)體,而while循環(huán)不一定會(huì)執(zhí)行循環(huán)體
int i = 1; do{ System.out.println("i等于" + i); i++;}//記得更新值,否則會(huì)死循環(huán) while(i <= 10);
經(jīng)典循環(huán)案例
- 打印99乘法表
for(int i = 1;i <= 9;i++){ for(int j = 1;j <= i;j++){ System.out.print(j + "*" + i + "=" + (j * i) + "\t"); } System.out.println(); }
- 打印100以內(nèi)的質(zhì)數(shù)
for(int i = 2;i <= 100;i++){ boolean isPrime = true; for(int j = 2;j < i;j++){ if(i % j == 0){ isPrime = false; break;} } if(isPrime){ System.out.println(i); }
- 打印1000以內(nèi)的水仙花數(shù)
for(int i = 100;i <= 999;i++){ int ge = i % 10; int shi = i / 10 % 10; int bai = i / 100; if(i == ge * ge * ge + shi * shi * shi + bai * bai * bai){ System.out.println(i);} }
- 打印菱形
for (int i = 1; i <= 5; i++) { //上半部分 for (int j = 1; j <= 10 - 2 * i; j++) { System.out.print(" "); } for (int k = 1; k <= 2 * i - 1; k++) { System.out.print("* "); } System.out.println(); } for(int i=1;i<=4;i++){ //下半部分 for(int j=1;j<=2*i;j++){ System.out.print(" "); } for(int k=1;k<=10-2*i-1;k++){ System.out.print("* "); } System.out.println(); }
break和continue
- break語(yǔ)句用于終止某個(gè)語(yǔ)句塊的執(zhí)行,即跳過循環(huán)體中剩余的語(yǔ)句。
- continue語(yǔ)句用于跳過循環(huán)體中剩余的語(yǔ)句而強(qiáng)制執(zhí)行下一次循環(huán)。
- break語(yǔ)句可以用于以下語(yǔ)句:
- for循環(huán)
- while循環(huán)
- do…while循環(huán)
- switch語(yǔ)句
- continue語(yǔ)句可以用于以下語(yǔ)句:
- for循環(huán)
- while循環(huán)
- do…while循環(huán)
鍵盤輸入
- 步驟:
導(dǎo)包:import java.util.Scanner;
創(chuàng)建對(duì)象:Scanner sc = new Scanner(System.in);
接收數(shù)據(jù):int num = sc.nextInt();- nextInt()方法用于接收一個(gè)整數(shù)
- next()方法用于接收一個(gè)字符串
- nextDouble()方法用于接收一個(gè)雙精度浮點(diǎn)數(shù)
- nextFloat()方法用于接收一個(gè)單精度浮點(diǎn)數(shù)
- nextBoolean()方法用于接收一個(gè)布爾值
- nextByte()方法用于接收一個(gè)字節(jié)
- nextShort()方法用于接收一個(gè)短整數(shù)
- nextLong()方法用于接收一個(gè)長(zhǎng)整數(shù)
- next().charAt(0)方法用于接收一個(gè)字符
關(guān)閉資源:sc.close();
import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入一個(gè)整數(shù):"); int num = sc.nextInt(); System.out.println("您輸入的整數(shù)是:" + num); sc.close(); } }
隨機(jī)數(shù)生成
- Math.random()方法用于生成一個(gè)0到1之間的隨機(jī)數(shù)
- 如何獲取 [a,b] 范圍內(nèi)的隨機(jī)整數(shù)呢?
(int)(Math.random() * (b - a + 1)) + a
- 如何獲取 [a,b] 范圍內(nèi)的隨機(jī)整數(shù)呢?
總結(jié)
到此這篇關(guān)于Java流程控制語(yǔ)句有哪些的文章就介紹到這了,更多相關(guān)Java流程控制語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot自定義Starter實(shí)現(xiàn)流程詳解
SpringBoot中的starter是一種非常重要的機(jī)制,能夠拋棄以前繁雜的配置,將其統(tǒng)一集成進(jìn)starter,應(yīng)用者只需要在maven中引入starter依賴,SpringBoot就能自動(dòng)掃描到要加載的信息并啟動(dòng)相應(yīng)的默認(rèn)配置。starter讓我們擺脫了各種依賴庫(kù)的處理,需要配置各種信息的困擾2022-09-09Java中三種零拷貝的實(shí)現(xiàn)示例以及對(duì)比詳解
這篇文章主要介紹了Java中三種零拷貝的實(shí)現(xiàn)示例以及對(duì)比詳解,本文主要是介紹幾種零拷貝的實(shí)現(xiàn)示例,以及與最傳統(tǒng)的做一個(gè)對(duì)比,看看在效率上到底有多大的提升,需要的朋友可以參考下2023-12-12Spring?中使用?Validation?注解校驗(yàn)參數(shù)的方法
本文介紹了如何在Spring中使用Validation注解進(jìn)行參數(shù)校驗(yàn),包括引入依賴、簡(jiǎn)單示例、常見校驗(yàn)注解分類與說明、分組校驗(yàn)和自定義校驗(yàn),通過這些方法,可以方便地對(duì)Controller、Service等層面的參數(shù)進(jìn)行校驗(yàn),確保數(shù)據(jù)的合法性和一致性,感興趣的朋友跟隨小編一起看看吧2024-11-11集成Spring Redis緩存的實(shí)現(xiàn)
今天小編就為大家分享一篇關(guān)于集成Spring Redis緩存的實(shí)現(xiàn),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12Java如何基于IO流實(shí)現(xiàn)同一文件讀寫操作
這篇文章主要介紹了Java如何基于IO流實(shí)現(xiàn)文件讀寫操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10SpringBoot+Dubbo+Zookeeper實(shí)現(xiàn)簡(jiǎn)單分布式開發(fā)的應(yīng)用詳解
這篇文章主要介紹了SpringBoot+Dubbo+Zookeeper實(shí)現(xiàn)簡(jiǎn)單分布式開發(fā)的應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01使用SpringBoot和JPA實(shí)現(xiàn)批量處理新增、修改
最近項(xiàng)目需要在JPA中使用ID進(jìn)行批量更新,所以下面這篇文章主要給大家介紹了關(guān)于使用SpringBoot和JPA實(shí)現(xiàn)批量處理新增、修改的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06