Java中的邏輯控制語句詳解
順序結(jié)構(gòu)
我們之前寫的大多代碼都是順序結(jié)構(gòu)的,即按照代碼的順序一行一行的執(zhí)行
代碼1 System.out.println("you"); System.out.println("and"); System.out.println("me"); 代碼2 System.out.println("and"); System.out.println("me"); System.out.println("you");
上述代碼 1 運(yùn)行結(jié)果:
you
and
me
代碼 2 運(yùn)行結(jié)果:
and
me
you
分支結(jié)構(gòu)
if 語句
基本語法格式:
if(布爾表達(dá)式) { 代碼1 // 條件滿足時(shí) 執(zhí)行 } else { 代碼2 // 條件不滿足時(shí) 執(zhí)行 }
條件語句只能是布爾表達(dá)式
布爾表達(dá)式的結(jié)果為 true,執(zhí)行代碼1,否則執(zhí)行代碼2
舉例:
如果 J 這次考到90分以上,獎(jiǎng)勵(lì)一個(gè)大雞腿,否則獎(jiǎng)勵(lì)一個(gè)大嘴巴子
int score = 95; if(score >= 90) { System.out.println("獎(jiǎng)勵(lì)一個(gè)大雞腿!"); }else { System.out.println("獎(jiǎng)勵(lì)一個(gè)大嘴巴子!"); }
注意事項(xiàng):
懸垂else:
int x = 10; int y = 10; if (x == 10) if (y == 10) System.out.println("aaa"); else System.out.println("bbb");
運(yùn)行結(jié)果:aaa
有多個(gè) if 語句且沒有大括號(hào)時(shí),else與最近的 if 匹配,故建議寫 if 語句時(shí),加上大括號(hào)~
switch 語句
基本語法格式:
switch(表達(dá)式) { case 常量值1:{ 語句1; break; } case 常量值2:{ 語句2; break; } ... default:{ 內(nèi)容都不滿足時(shí)執(zhí)行語句; break; } }
執(zhí)行流程:
- 先計(jì)算表達(dá)式的值
- 和 case 依次比較,一旦有響應(yīng)的匹配就執(zhí)行該項(xiàng)下的語句,直到遇到 break 時(shí)結(jié)束
- 當(dāng)表達(dá)式的值沒有與所列項(xiàng)匹配時(shí),執(zhí)行 default 后的語句
注意事項(xiàng):
- break 不能遺漏,否則會(huì)失去 “多分支選擇” 的效果
- case 的常量值不能重復(fù)
- 一般不推薦switch 嵌套使用
不能做switch參數(shù)的類型有哪些?
long,float,double,boolean
循環(huán)結(jié)構(gòu)
while 循環(huán)
基本語法格式:
while(循環(huán)條件) { 循環(huán)語句; }
循環(huán)條件為 true, 則執(zhí)行循環(huán)語句, 否則結(jié)束循環(huán)
while 循環(huán)輸入
Scanner scan = new Scanner(System.in); // Ctrl+C 直接中斷程序 // Ctrl+D 正常退出程序 while(scan.hasNext()){ int year = scan.nextInt(); if((year % 4==0 && year % 100!=0) || year % 400==0){ System.out.println("閏年!"); }else{ System.out.println("不是閏年!"); } }
Ctrl+C 直接中斷程序
Ctrl+D 正常退出程序
注意事項(xiàng):
- 一定記得步進(jìn),否則可能出現(xiàn)死循環(huán)
- while 循環(huán)條件只能是布爾表達(dá)式
break
- break 功能:讓循環(huán)提前結(jié)束
- break只能用于兩種情況,一個(gè)是switch,一個(gè)是循環(huán)
代碼示例:
求100-200中第一個(gè)既能被3整除也能被5整除的數(shù):
int num = 100; while(num<=200){ if(num % 15==0){ System.out.println(num); break; //此處用break,因?yàn)閎reak在while循環(huán)里 } num++; }
執(zhí)行結(jié)果: 105
continue
continue 功能:跳過這次循環(huán),進(jìn)入下次循環(huán)
若將上邊break 示例代碼 中的 break 換成 continue,則會(huì)循環(huán)打印 105
for 循環(huán)
基本語法格式:
for(表達(dá)式1; 布爾表達(dá)式2; 表達(dá)式3){ 循環(huán)體; }
執(zhí)行順序:
第一趟循環(huán):
- 首先,執(zhí)行表達(dá)式 1,且表達(dá)式 1 只執(zhí)行一次,即循環(huán)的初始化
- 判斷表達(dá)式 2 是否為真若為真,
- 則執(zhí)行循環(huán)體
- 執(zhí)行表達(dá)式3
第二趟循環(huán):
- 判斷表達(dá)式 2 是否為真若為真,
- 則執(zhí)行循環(huán)體
- 執(zhí)行表達(dá)式3
一直到表達(dá)式2為假,循環(huán)結(jié)束
代碼示例:
for(int i=1; i<=10;i++){ System.out.println(i); }
do while 循環(huán)
先執(zhí)行循環(huán)語句,再判定循環(huán)條件,條件成立則繼續(xù)執(zhí)行,否則循環(huán)結(jié)束
基本語法格式:
do{ 循環(huán)語句; }while(循環(huán)體);
代碼示例:
打印數(shù)字 1 - 10
int num = 1; do { System.out.println(num); num++; }while( num<=10 );
注意事項(xiàng): do while 循環(huán)最后的分號(hào)一定不要忘記一般不推薦使用do while語句
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java獲取當(dāng)前時(shí)間的時(shí)間戳(13位和10位)
本文主要介紹了Java獲取當(dāng)前時(shí)間的時(shí)間戳(13位和10位),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07idea 右鍵項(xiàng)目沒有run 運(yùn)行選項(xiàng)
這篇文章主要介紹了idea 右鍵項(xiàng)目沒有run 運(yùn)行選項(xiàng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Java實(shí)現(xiàn)排球比賽計(jì)分系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)排球比賽計(jì)分系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Spring?Boot中@Validated注解不生效問題匯總大全
這篇文章主要給大家介紹了關(guān)于Spring?Boot中@Validated注解不生效問題匯總的相關(guān)資料,@Validated注解是Spring框架中的一個(gè)注解,用于在方法參數(shù)上添加參數(shù)校驗(yàn)規(guī)則,需要的朋友可以參考下2023-07-07Java線上問題排查神器Arthas實(shí)戰(zhàn)原理解析
原先我們Java中我們常用分析問題一般是使用JDK自帶或第三方的分析工具如jstat、jmap、jstack、?jconsole、visualvm、Java?Mission?Control、MAT等,還有一款神器Arthas工具,可幫助程序員解決很多繁瑣的問題,感興趣的朋友一起看看吧2022-01-01