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)文章
泛型的類型擦除后fastjson反序列化時(shí)如何還原詳解
這篇文章主要為大家介紹了泛型的類型擦除后fastjson反序列化時(shí)如何還原詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
一文帶你了解Java創(chuàng)建型設(shè)計(jì)模式之原型模式
原型模式其實(shí)就是從一個(gè)對象在創(chuàng)建另外一個(gè)可定制的對象,不需要知道任何創(chuàng)建的細(xì)節(jié)。本文就來通過示例為大家詳細(xì)聊聊原型模式,需要的可以參考一下2022-09-09
Java實(shí)現(xiàn)調(diào)用第三方相關(guān)接口
最近在做一個(gè)項(xiàng)目,需要調(diào)用第三方接口,本文主要介紹了Java實(shí)現(xiàn)調(diào)用第三方相關(guān)接口,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
servlet之session簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了servlet之session簡介,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
Java基礎(chǔ)類庫之StringBuffer類用法詳解
String類是在所有開發(fā)項(xiàng)目開發(fā)之中一定會(huì)使用的一個(gè)功能類。雖然String類很好用,但也有弊端——內(nèi)容不允許頻繁修改,所以為了解決問題,我們提供了StringBuffer類。本文就來講講StringBuffer類的用法2022-07-07
一文教你利用Stream?API批量Mock數(shù)據(jù)的方法
在日常開發(fā)的過程中我們經(jīng)常會(huì)遇到需要mock一些數(shù)據(jù)的場景,比如說?mock?一些接口的返回或者說?mock?一些測試消息用于隊(duì)列生產(chǎn)者發(fā)送消息。本文將教你如何通過?Stream?API?批量?Mock?數(shù)據(jù),需要的可以參考一下2022-09-09
Maven構(gòu)建SpringBoot集成MyBatis過程
文章介紹了如何使用Maven創(chuàng)建一個(gè)Spring Boot項(xiàng)目,并集成MyBatis,首先,配置Maven環(huán)境,然后在pom.xml中添加MyBatis依賴,配置數(shù)據(jù)庫連接信息,最后生成Mapper XML文件和DAO層代碼2024-11-11

