java的if else語句入門指南(推薦)
條件語句,是程序中根據(jù)條件是否成立進(jìn)行選擇執(zhí)行的一類語句,這類語句在實(shí)際使用中,難點(diǎn)在于如何準(zhǔn)確的抽象條件。例如實(shí)現(xiàn)程序登錄功能時(shí),如果用戶名和密碼正確,則進(jìn)入系統(tǒng),否則彈出“密碼錯(cuò)誤”這樣的提示框等。
本部分對于條件語句的介紹,重點(diǎn)在于語法講解和基本的使用,更詳細(xì)的使用參看后續(xù)的綜合示例部分。
在Java語言中,條件語句主要有兩類語法:if語句和switch語句。
1 、if語句
if關(guān)鍵字中文意思是如果,其細(xì)致的語法歸納來說總共有三種:if語句、if-else語句和if-else if-else語句,下面分別進(jìn)行介紹。
1.1 if語句
該類語句的語法格式為:if(條件表達(dá)式)
功能代碼;語法說明:if是該語句中的關(guān)鍵字,后續(xù)緊跟一對小括號(hào),該對小括號(hào)任何時(shí)候不能省略,小括號(hào)的內(nèi)部是具體的條件,語法上要求該表達(dá)式結(jié)果為boolean類型。后續(xù)為功能的代碼,也就是當(dāng)條件成立時(shí)執(zhí)行的代碼,在程序書寫時(shí),一般為了直觀的表達(dá)包含關(guān)系,功能代碼一般需要縮進(jìn)。
需要特別注意的是:
1、 這里的功能代碼只能是一行,關(guān)于多行結(jié)構(gòu)的功能代碼,后續(xù)將說明。
2、 if(條件表達(dá)式)后續(xù)一般不書寫分號(hào)if語句的執(zhí)行流程為:如果條件表達(dá)式成立,則執(zhí)行功能代碼,如果條件表達(dá)式不成立,則不執(zhí)行后續(xù)的功能代碼。
示例代碼:
int a = 10;
if(a >= 0)
System.out.println(“a是正數(shù)”);
if( a % 2 == 0)
System.out.println(“a是偶數(shù)”);
在該示例代碼中,第一個(gè)條件是判斷變量a的值是否大于等于零,如果該條件成立則執(zhí)行輸出,第二個(gè)條件是判斷變量a是否為偶數(shù),如果成立也輸出。
注意以下代碼的執(zhí)行流程:
int m = 20;
if( m > 20)
m += 20;
System.out.println(m);
按照前面的語法格式說明,只有m+=20;這行代碼屬于功能代碼,而后續(xù)的輸出語句和前面的條件形成順序結(jié)構(gòu),所以該程序執(zhí)行以后輸出的結(jié)果為20.如果當(dāng)條件成立時(shí),需要執(zhí)行的語句有多句,則可以使用語句塊來進(jìn)行表述,語法格式如下:
if(條件表達(dá)式){
功能代碼塊;
}
使用這種語法格式,使用一個(gè)代碼塊來代替前面的功能代碼,這樣可以在代碼塊內(nèi)部書寫任意多行的代碼,而且也使整個(gè)程序的邏輯比較清楚,所以在實(shí)際的代碼編寫中推薦使用該種邏輯。
1.2 if-else語句
if-else語句實(shí)現(xiàn)了封閉的條件,在程序中使用的更加常見。其中else關(guān)鍵字的作用是“否則”,即條件不成立的情況。
if-else語句的語法格式如下:
if(條件表達(dá)式)
功能代碼1;
else
功能代碼2;
語法說明:其中前面的部分和if語句一樣,else部分后面是功能的代碼,按照該語法格式,功能代碼只能有一句。
執(zhí)行順序:如果條件成立,則執(zhí)行if語句中的功能代碼1,否則執(zhí)行else中的功能代碼2.示例代碼為:
int n = 12;
if(n % 2 != 0)
System.out.println(“n是奇數(shù)”);
else System.out.println(“n不是奇數(shù)”);
則因?yàn)閚%2的值是0,條件不成立,則執(zhí)行else語句的代碼,程序輸出“n不是奇數(shù)”。
在實(shí)際使用時(shí),為了結(jié)構(gòu)清楚,以及可以在功能代碼部分書寫多行代碼,一般把功能代碼部分使用代碼塊,則語法格式為:
if(條件表達(dá)式){
功能代碼塊
}else{
功能代碼塊
}
當(dāng)程序中有多個(gè)if時(shí),else語句和最近的if匹配。示例代碼:
if(條件1)
功能代碼1;
if(條件2)
功能代碼2;
else功能代碼3;
則這里的else語句和條件2對應(yīng)的if語句匹配,前面的條件1是一個(gè)獨(dú)立的語句。在實(shí)際代碼中,可以使用大括號(hào)使整個(gè)程序的結(jié)構(gòu)更加清楚。
對于if-else語句來說,因?yàn)閕f的條件和else的條件是互斥的,所以在實(shí)際執(zhí)行中,只有一個(gè)語句中的功能代碼會(huì)得到執(zhí)行。
在實(shí)際開發(fā)中,有些公司在書寫條件時(shí),即使else語句中不書寫代碼,也要求必須書寫else,這樣可以讓條件封閉。這個(gè)不是語法上必須的。
1.3 if-else
if-else語句在現(xiàn)實(shí)中,有些時(shí)候的條件不是一個(gè),而是一組相關(guān)的條件,例如將阿拉伯?dāng)?shù)字轉(zhuǎn)換為中文大寫,根據(jù)分?jǐn)?shù)轉(zhuǎn)換為對應(yīng)的等級(jí)等,都是多條件的結(jié)構(gòu),在程序中為了避免寫多個(gè)if語句的結(jié)構(gòu),提供了一類專門的多分支語句,這就是if-else if-else語句。
if-else if-else語句的語法格式為:
if(條件1)
功能代碼1;
else if(條件2)
功能代碼2;
else if(條件3)
功能代碼3;
……
else功能代碼;
語法說明:
1、 else if是else和if兩個(gè)關(guān)鍵字,中間使用空格進(jìn)行間隔。
2、 條件1到條件n都是boolean類型
3、 else if語句可以有任意多句
4、 最后的else語句為可選
5、 如果功能代碼部分不是語句塊,也就是不用大括號(hào),就只能寫一句。
執(zhí)行流程:當(dāng)條件1成立時(shí),則執(zhí)行功能代碼1;當(dāng)條件1不成立且條件2成立時(shí),則執(zhí)行功能代碼2;如果條件1、條件2都不成立且條件3成立,則執(zhí)行功能代碼3,依次類推,如果所有條件都不成立,則執(zhí)行else語句的功能代碼。其執(zhí)行流程的流程圖如上所示。
下面是一個(gè)實(shí)現(xiàn)根據(jù)月份的值,輸出該月份包含的日期數(shù),2月份全部輸出28,不考慮閏年的示例代碼:
int month = 3; int days = 0; //日期數(shù) if(month == 1){ days = 31; }else if(month == 2){ days = 28; } else if(month == 3){ days = 31; } else if(month == 4){ days = 30; } else if(month == 5){ days = 31; } else if(month == 6){ days = 30; } else if(month == 7){ days = 31; } else if(month == 8){ days = 31; } else if(month == 9){ days = 30; } else if(month == 10){ days = 31; } else if(month == 11){ days = 30; } else if(month == 12){ days = 31; } System.out.println(days);
再來看一個(gè)示例代碼,該代碼的功能是實(shí)現(xiàn)將百分制的成績轉(zhuǎn)換為A、B、C、D和E,代碼如下:
int score = 87; if(score >= 90){ System.out.println(‘A'); } else if(score >= 80){ System.out.println(‘B'); } else if(score >= 70){ System.out.println(‘C'); } else if(score >= 60){ System.out.println(‘D'); } else{ System.out.println(‘E'); }
從該代碼中可知,每個(gè)else if語句在書寫時(shí)是有順序的,在實(shí)際書寫時(shí),必須按照邏輯上的順序進(jìn)行書寫,否則將出現(xiàn)邏輯錯(cuò)誤。
if-else if-else語句是Java語言中提供的一個(gè)多分支條件語句,但是在判斷某些問題時(shí),會(huì)書寫的比較麻煩,所以在語法中提供了另外一個(gè)語句——switch語句來更好的實(shí)現(xiàn)多分支語句的判別。
以上這篇java的if else語句入門指南(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 詳解Java編程中if...else語句的嵌套寫法
- Java利用策略模式優(yōu)化過多if else代碼
- Java中if...else語句使用的學(xué)習(xí)教程
- Java的Struts框架中的if/else標(biāo)簽使用詳解
- 聊聊java中一些減少if else 的編碼習(xí)慣的方法
- Java編程細(xì)節(jié)重構(gòu)之為什么if-else不是好代碼詳析
- Java基礎(chǔ)教程_判斷語句if else
- java如何消除太多的if else判斷示例代碼
- 如何優(yōu)雅的替換掉Java代碼中的if else
- Java如何利用狀態(tài)模式(state pattern)替代if else
相關(guān)文章
Ubuntu安裝jenkins完成自動(dòng)化構(gòu)建詳細(xì)步驟
Jenkins是一個(gè)開源的自動(dòng)化服務(wù)器,可以用來輕松地建立持續(xù)集成和持續(xù)交付(CI/CD)管道,這篇文章主要給大家介紹了關(guān)于Ubuntu安裝jenkins完成自動(dòng)化構(gòu)建的相關(guān)資料,需要的朋友可以參考下2024-03-03SpringBoot整合阿里云視頻點(diǎn)播的過程詳解
視頻點(diǎn)播(ApsaraVideo for VoD)是集音視頻采集、編輯、上傳、自動(dòng)化轉(zhuǎn)碼處理、媒體資源管理、分發(fā)加速于一體的一站式音視頻點(diǎn)播解決方案。這篇文章主要介紹了SpringBoot整合阿里云視頻點(diǎn)播的詳細(xì)過程,需要的朋友可以參考下2021-12-12MyBatis查詢數(shù)據(jù),賦值給List集合時(shí),數(shù)據(jù)缺少的問題及解決
這篇文章主要介紹了MyBatis查詢數(shù)據(jù),賦值給List集合時(shí),數(shù)據(jù)缺少的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Java Code Cache滿導(dǎo)致應(yīng)用性能降低問題解決
這篇文章主要介紹了Java Code Cache滿導(dǎo)致應(yīng)用性能降低問題解決,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08Mybatis調(diào)用MySQL存儲(chǔ)過程的簡單實(shí)現(xiàn)
本篇文章主要介紹了Mybatis調(diào)用MySQL存儲(chǔ)過程的簡單實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04Spring boot2.x中集成H2數(shù)據(jù)庫代碼實(shí)例
這篇文章主要介紹了Spring boot2.x中集成H2數(shù)據(jù)庫代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12jar命令修改jar包中的application.yml配置文件
本文主要介紹了jar命令修改jar包中的application.yml配置文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08