原創(chuàng)聲明:本文為作者原創(chuàng),未經(jīng)允許不得轉(zhuǎn)載,經(jīng)授權(quán)轉(zhuǎn)載需注明作者和出處
看到這章,那么你已經(jīng)掌握了java的基本的語法,現(xiàn)在可以來做點稍微高級的事情啦。判斷,是編程的最基本的邏輯,因此本章我們來講一講java的條件判斷。
在java中,最常用的條件判斷無非是if判斷語句,我們的if語句又有三種格式
int a = 1;
int b = 2;
if(a+b==3){
System.out.println("a+b等于3");
}
這段代碼運(yùn)行的結(jié)果是a+b等于3,因為a+b運(yùn)算結(jié)果為3,這個結(jié)果剛好等于3為true,因此程序進(jìn)入了判斷的方法體內(nèi),執(zhí)行了輸出語句。如果我們把b的值改為1:int a = 1;
int b = 1;
if(a+b==3){
System.out.println("a+b等于3");
}
運(yùn)行結(jié)果是什么也沒有,那就說明方法體沒有被進(jìn)入,輸出語句沒有執(zhí)行。int a = 1;
int b = 1;
if(a+b==3){
System.out.println("a+b等于3");
}else{
System.out.println("a+b不等于3");
}
這段代碼運(yùn)行的結(jié)果是a+b不等于3,因為判斷條件a+b=3的結(jié)果是false,所以執(zhí)行了else下的內(nèi)容。int a = 1;
int b = 0;
if(a+b==3){
System.out.println("a+b等于3");
}else if(a+b==2){
System.out.println("a+b等于2");
}else if(a+b==1){
System.out.println("a+b等于1");
}
這段代碼的執(zhí)行結(jié)果是a+b等于1,由此可以看出這種格式的判斷是符合哪個條件就會執(zhí)行下面的方法別的就不去執(zhí)行了。當(dāng)然,為了方便那種不符合任何條件的判斷,我們可以在最末尾加上一個else{執(zhí)行的內(nèi)容},如果前面所有的條件都不符合,則執(zhí)行else下的內(nèi)容。除了if語句,我們的判斷還有switch語句,格式如下:
switch (條件) {
case 值1:
要執(zhí)行的內(nèi)容
break;
case 值2:
要執(zhí)行的內(nèi)容
break;
…
default:
要執(zhí)行的內(nèi)容
break;
}
代碼如下:
int a = 1;
int b = 2;
switch (a+b) {
case 3:
System.out.println("a+b等于3");
break;
case 2:
System.out.println("a+b等于2");
break;
case 1:
System.out.println("a+b等于1");
break;
default:
System.out.println("都不是");
break;
}
這段代碼執(zhí)行的結(jié)果是a+b等于3,我們目前可以手動改變ab的值來決定結(jié)果。
switch的執(zhí)行效率要比if else執(zhí)行的效率高。因此我們可以用在已知有固定結(jié)果的條件下進(jìn)行判斷,代替if else,最后一個default是在沒有找到想要的值的時候執(zhí)行的內(nèi)容,是不是跟if else的邏輯非常像?另外,程序中的break;可不能少,這個break的作用是執(zhí)行了想要的語句之后跳出循環(huán),若沒有break,會繼續(xù)執(zhí)行緊挨著的下一個case下的內(nèi)容一直到遇到break或者到循環(huán)末尾。
三目運(yùn)算:
格式為:
條件?結(jié)果為true是時執(zhí)行:結(jié)果為fasle時執(zhí)行
代碼如下:
int a = 1;
int b = 2;
int c = a>b?a:b;
System.out.println(c);
這段代碼的執(zhí)行結(jié)果為2,它的意思是先判斷a是否大于b,如果a大于b就把a(bǔ)的值賦給c,反之,就把b的值賦給c。
三目運(yùn)算本質(zhì)上也是一種判斷并且的執(zhí)行效率也比if else高,在一定的條件下可以代替if else語句。