java中if是控制分支結(jié)構(gòu)的,意思是如果條件成立的話,執(zhí)行某段代碼。
創(chuàng)新互聯(lián)專注于黃島網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供黃島營(yíng)銷型網(wǎng)站建設(shè),黃島網(wǎng)站制作、黃島網(wǎng)頁(yè)設(shè)計(jì)、黃島網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造黃島網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供黃島網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
if語(yǔ)句
一個(gè)if語(yǔ)句包含一個(gè)布爾表達(dá)式和一條或多條語(yǔ)句。
語(yǔ)法
If語(yǔ)句的用語(yǔ)法如下:
if(布爾表達(dá)式)
{
//如果布爾表達(dá)式為true將執(zhí)行的語(yǔ)句
}
如果布爾表達(dá)式的值為true,則執(zhí)行if語(yǔ)句中的代碼塊。否則執(zhí)行If語(yǔ)句塊后面的代碼。
public class Test {
public static void main(String args[]){
int x = 10;
if( x 20 ){
System.out.print("這是 if 語(yǔ)句");
}
}
}
以上代碼編譯運(yùn)行結(jié)果如下:
這是 if 語(yǔ)句
if...else語(yǔ)句
if語(yǔ)句后面可以跟else語(yǔ)句,當(dāng)if語(yǔ)句的布爾表達(dá)式值為false時(shí),else語(yǔ)句塊會(huì)被執(zhí)行。
語(yǔ)法
if…else的用法如下:
if(布爾表達(dá)式){
//如果布爾表達(dá)式的值為true
}else{
//如果布爾表達(dá)式的值為false
}
實(shí)例
public class Test {
public static void main(String args[]){
int x = 30;
if( x 20 ){
System.out.print("這是 if 語(yǔ)句");
}else{
System.out.print("這是 else 語(yǔ)句");
}
}
}
以上代碼編譯運(yùn)行結(jié)果如下:
這是 else 語(yǔ)句
if...else if...else語(yǔ)句
if語(yǔ)句后面可以跟elseif…else語(yǔ)句,這種語(yǔ)句可以檢測(cè)到多種可能的情況。
使用if,else if,else語(yǔ)句的時(shí)候,需要注意下面幾點(diǎn):
if語(yǔ)句至多有1個(gè)else語(yǔ)句,else語(yǔ)句在所有的elseif語(yǔ)句之后。
If語(yǔ)句可以有若干個(gè)elseif語(yǔ)句,它們必須在else語(yǔ)句之前。
一旦其中一個(gè)else if語(yǔ)句檢測(cè)為true,其他的else if以及else語(yǔ)句都將跳過(guò)執(zhí)行。
語(yǔ)法
if...else語(yǔ)法格式如下:
if(布爾表達(dá)式 1){
//如果布爾表達(dá)式 1的值為true執(zhí)行代碼
}else if(布爾表達(dá)式 2){
//如果布爾表達(dá)式 2的值為true執(zhí)行代碼
}else if(布爾表達(dá)式 3){
//如果布爾表達(dá)式 3的值為true執(zhí)行代碼
}else {
//如果以上布爾表達(dá)式都不為true執(zhí)行代碼
}
實(shí)例
public class Test {
public static void main(String args[]){
int x = 30;
if( x == 10 ){
System.out.print("Value of X is 10");
}else if( x == 20 ){
System.out.print("Value of X is 20");
}else if( x == 30 ){
System.out.print("Value of X is 30");
}else{
System.out.print("This is else statement");
}
}
}
以上代碼編譯運(yùn)行結(jié)果如下:
Value of X is 30
if(con1){
code1
}else{
code2
}
con1是一個(gè)條件 ,返回類型為布爾,如1==2[返回false]
code1表示con1成立 即返回true 執(zhí)行的代碼塊
code2表示code不成立 即返回false 執(zhí)行的代碼塊
條件語(yǔ)句,是程序中根據(jù)條件是否成立進(jìn)行選擇執(zhí)行的一類語(yǔ)句,這類語(yǔ)句在實(shí)際使用中,難點(diǎn)在于如何準(zhǔn)確的抽象條件。例如實(shí)現(xiàn)程序登錄功能時(shí),如果用戶名和密碼正確,則進(jìn)入系統(tǒng),否則彈出“密碼錯(cuò)誤”這樣的提示框等。
本部分對(duì)于條件語(yǔ)句的介紹,重點(diǎn)在于語(yǔ)法講解和基本的使用,更詳細(xì)的使用參看后續(xù)的綜合示例部分。
在Java語(yǔ)言中,條件語(yǔ)句主要有兩類語(yǔ)法:if語(yǔ)句和switch語(yǔ)句。
1 、if語(yǔ)句
if關(guān)鍵字中文意思是如果,其細(xì)致的語(yǔ)法歸納來(lái)說(shuō)總共有三種:if語(yǔ)句、if-else語(yǔ)句和if-else if-else語(yǔ)句,下面分別進(jìn)行介紹。
1.1 if語(yǔ)句
該類語(yǔ)句的語(yǔ)法格式為:if(條件表達(dá)式)
功能代碼;語(yǔ)法說(shuō)明:if是該語(yǔ)句中的關(guān)鍵字,后續(xù)緊跟一對(duì)小括號(hào),該對(duì)小括號(hào)任何時(shí)候不能省略,小括號(hào)的內(nèi)部是具體的條件,語(yǔ)法上要求該表達(dá)式結(jié)果為boolean類型。后續(xù)為功能的代碼,也就是當(dāng)條件成立時(shí)執(zhí)行的代碼,在程序書寫時(shí),一般為了直觀的表達(dá)包含關(guān)系,功能代碼一般需要縮進(jìn)。
需要特別注意的是:
1、 這里的功能代碼只能是一行,關(guān)于多行結(jié)構(gòu)的功能代碼,后續(xù)將說(shuō)明。
2、 if(條件表達(dá)式)后續(xù)一般不書寫分號(hào)if語(yǔ)句的執(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);
按照前面的語(yǔ)法格式說(shuō)明,只有m+=20;這行代碼屬于功能代碼,而后續(xù)的輸出語(yǔ)句和前面的條件形成順序結(jié)構(gòu),所以該程序執(zhí)行以后輸出的結(jié)果為20.如果當(dāng)條件成立時(shí),需要執(zhí)行的語(yǔ)句有多句,則可以使用語(yǔ)句塊來(lái)進(jìn)行表述,語(yǔ)法格式如下:
if(條件表達(dá)式){
功能代碼塊;
}
使用這種語(yǔ)法格式,使用一個(gè)代碼塊來(lái)代替前面的功能代碼,這樣可以在代碼塊內(nèi)部書寫任意多行的代碼,而且也使整個(gè)程序的邏輯比較清楚,所以在實(shí)際的代碼編寫中推薦使用該種邏輯。
1.2 if-else語(yǔ)句
if-else語(yǔ)句實(shí)現(xiàn)了封閉的條件,在程序中使用的更加常見。其中else關(guān)鍵字的作用是“否則”,即條件不成立的情況。
if-else語(yǔ)句的語(yǔ)法格式如下:
if(條件表達(dá)式)
功能代碼1;
else
功能代碼2;
語(yǔ)法說(shuō)明:其中前面的部分和if語(yǔ)句一樣,else部分后面是功能的代碼,按照該語(yǔ)法格式,功能代碼只能有一句。
執(zhí)行順序:如果條件成立,則執(zhí)行if語(yǔ)句中的功能代碼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語(yǔ)句的代碼,程序輸出“n不是奇數(shù)”。
在實(shí)際使用時(shí),為了結(jié)構(gòu)清楚,以及可以在功能代碼部分書寫多行代碼,一般把功能代碼部分使用代碼塊,則語(yǔ)法格式為:
if(條件表達(dá)式){
功能代碼塊
}else{
功能代碼塊
}
當(dāng)程序中有多個(gè)if時(shí),else語(yǔ)句和最近的if匹配。示例代碼:
if(條件1)
功能代碼1;
if(條件2)
功能代碼2;
else功能代碼3;
則這里的else語(yǔ)句和條件2對(duì)應(yīng)的if語(yǔ)句匹配,前面的條件1是一個(gè)獨(dú)立的語(yǔ)句。在實(shí)際代碼中,可以使用大括號(hào)使整個(gè)程序的結(jié)構(gòu)更加清楚。
對(duì)于if-else語(yǔ)句來(lái)說(shuō),因?yàn)閕f的條件和else的條件是互斥的,所以在實(shí)際執(zhí)行中,只有一個(gè)語(yǔ)句中的功能代碼會(huì)得到執(zhí)行。
在實(shí)際開發(fā)中,有些公司在書寫條件時(shí),即使else語(yǔ)句中不書寫代碼,也要求必須書寫else,這樣可以讓條件封閉。這個(gè)不是語(yǔ)法上必須的。
1.3 if-else
if-else語(yǔ)句在現(xiàn)實(shí)中,有些時(shí)候的條件不是一個(gè),而是一組相關(guān)的條件,例如將阿拉伯?dāng)?shù)字轉(zhuǎn)換為中文大寫,根據(jù)分?jǐn)?shù)轉(zhuǎn)換為對(duì)應(yīng)的等級(jí)等,都是多條件的結(jié)構(gòu),在程序中為了避免寫多個(gè)if語(yǔ)句的結(jié)構(gòu),提供了一類專門的多分支語(yǔ)句,這就是if-else if-else語(yǔ)句。
if-else if-else語(yǔ)句的語(yǔ)法格式為:
if(條件1)
功能代碼1;
else if(條件2)
功能代碼2;
else if(條件3)
功能代碼3;
……
else功能代碼;
語(yǔ)法說(shuō)明:
1、 else if是else和if兩個(gè)關(guān)鍵字,中間使用空格進(jìn)行間隔。
2、 條件1到條件n都是boolean類型
3、 else if語(yǔ)句可以有任意多句
4、 最后的else語(yǔ)句為可選
5、 如果功能代碼部分不是語(yǔ)句塊,也就是不用大括號(hào),就只能寫一句。
執(zhí)行流程:當(dāng)條件1成立時(shí),則執(zhí)行功能代碼1;當(dāng)條件1不成立且條件2成立時(shí),則執(zhí)行功能代碼2;如果條件1、條件2都不成立且條件3成立,則執(zhí)行功能代碼3,依次類推,如果所有條件都不成立,則執(zhí)行else語(yǔ)句的功能代碼。其執(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);
再來(lái)看一個(gè)示例代碼,該代碼的功能是實(shí)現(xiàn)將百分制的成績(jī)轉(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語(yǔ)句在書寫時(shí)是有順序的,在實(shí)際書寫時(shí),必須按照邏輯上的順序進(jìn)行書寫,否則將出現(xiàn)邏輯錯(cuò)誤。
if-else if-else語(yǔ)句是Java語(yǔ)言中提供的一個(gè)多分支條件語(yǔ)句,但是在判斷某些問(wèn)題時(shí),會(huì)書寫的比較麻煩,所以在語(yǔ)法中提供了另外一個(gè)語(yǔ)句——switch語(yǔ)句來(lái)更好的實(shí)現(xiàn)多分支語(yǔ)句的判別。
-----參考資料:
str = 你要判斷的字符串
一、str.contains(",")返回true 則包含,
二、str.indexOf(",")如果等于-1,則不包含。
在Java語(yǔ)言中,條件語(yǔ)句主要有兩類語(yǔ)法:if語(yǔ)句和switch語(yǔ)句。
if關(guān)鍵字中文意思是如果,其細(xì)致的語(yǔ)法歸納來(lái)說(shuō)總共有三種:if語(yǔ)句、if-else語(yǔ)句和if-else if-else語(yǔ)句。
功能代碼;語(yǔ)法說(shuō)明:if是該語(yǔ)句中的關(guān)鍵字,后續(xù)緊跟一對(duì)小括號(hào),該對(duì)小括號(hào)任何時(shí)候不能省略,小括號(hào)的內(nèi)部是具體的條件,語(yǔ)法上要求該表達(dá)式結(jié)果為boolean類型。后續(xù)為功能的代碼,也就是當(dāng)條件成立時(shí)執(zhí)行的代碼,在程序書寫時(shí),一般為了直觀的表達(dá)包含關(guān)系,功能代碼一般需要縮進(jìn)。
需要特別注意的是:
1、 這里的功能代碼只能是一行,關(guān)于多行結(jié)構(gòu)的功能代碼,后續(xù)將說(shuō)明。
2、 if(條件表達(dá)式)后續(xù)一般不書寫分號(hào)if語(yǔ)句的執(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);
按照前面的語(yǔ)法格式說(shuō)明,只有m+=20;這行代碼屬于功能代碼,而后續(xù)的輸出語(yǔ)句和前面的條件形成順序結(jié)構(gòu),所以該程序執(zhí)行以后輸出的結(jié)果為20.如果當(dāng)條件成立時(shí),需要執(zhí)行的語(yǔ)句有多句,則可以使用語(yǔ)句塊來(lái)進(jìn)行表述。
使用一個(gè)代碼塊來(lái)代替前面的功能代碼,這樣可以在代碼塊內(nèi)部書寫任意多行的代碼,而且也使整個(gè)程序的邏輯比較清楚,所以在實(shí)際的代碼編寫中推薦使用該種邏輯。
if-else語(yǔ)句實(shí)現(xiàn)了封閉的條件,在程序中使用的更加常見。其中else關(guān)鍵字的作用是“否則”,即條件不成立的情況。
if-else語(yǔ)句的語(yǔ)法格式如下:
if(條件表達(dá)式)
語(yǔ)法說(shuō)明:其中前面的部分和if語(yǔ)句一樣,else部分后面是功能的代碼,按照該語(yǔ)法格式,功能代碼只能有一句。
執(zhí)行順序:如果條件成立,則執(zhí)行if語(yǔ)句中的功能代碼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語(yǔ)句的代碼,程序輸出“n不是奇數(shù)”。