分支結(jié)構(gòu)if 與swith

代碼的執(zhí)行順序是從上至下,逐條執(zhí)行。也存在兩種結(jié)構(gòu),一種是分支結(jié)構(gòu),一種是循環(huán)結(jié)構(gòu)。

?if - else? /???? if?? /???? if?? -? else? if?? - else:

第一種:

if?? -? else:

if(a){

b;}? else {

c;}
如果a成立,則執(zhí)行b,否則執(zhí)行c。表示只有兩種情況出現(xiàn),a或者!a。

結(jié)構(gòu):if(判斷語句){語句體;

}

if(??? 判斷句??? ){?? 執(zhí)行句;

}else{?? 另一個(gè)執(zhí)行句;

if(???? 判斷句?????){??? 執(zhí)行句;

}else if???? (判斷句)? {?? 執(zhí)行句;

}

}

例如:判斷用戶名與密碼是否正確

public static void Main(string[] args) ???????? {

Console.WriteLine("請(qǐng)輸入用戶名"); ????????

?string username = Console.ReadLine(); ?//鍵盤上獲取字符?。一定記?。ǎ。。??


?Console.WriteLine("請(qǐng)輸入密碼");???????????

string password = Console.ReadLine();

if (username == "admin" &&password == "888888")??? {????????????????

Console.WriteLine("密碼正確");??

?}?? else??{

?if?(username != "admin") ?? {????

Console.WriteLine("用戶名不正確");

} ?else if???(password != "888888")?? { ???????????? ?

Console.WriteLine("密碼不正確");

?}

?} ??

Console.ReadKey(); //還不懂什么意思
}

該執(zhí)行時(shí),數(shù)據(jù)進(jìn)入if的判斷語句,若符合判斷要求,則進(jìn)入語句體。不符合,則不進(jìn)入if語句。后面的else中不寫條件,因?yàn)樗且吹扔趇f判斷句中的結(jié)果,要么不等于。所以不需要寫。若嵌套則可以進(jìn)行選擇。


第二種:

if:

if?? (???a )?? {?

?b??;

?} if (? c? ){

d? ?;

}

而if后面可以在接 if,表示不一定只有兩種情況。例如if(a)b; if(c)d;
如果a成立,則執(zhí)行b,否則如果c成立,則執(zhí)行d。這種情況存在三種情況:a,!a&c,!a&!c,只是最后一種情況沒有執(zhí)行語句,可重復(fù)嵌套,有符合if條件時(shí)進(jìn)入執(zhí)行。

if(判斷語句){??

語句體1 ;

} if?(判斷語句){

?語句體2 ;

}

該語句執(zhí)行時(shí),首先進(jìn)入if的條件判斷句,符合,進(jìn)入語句體1,否則進(jìn)入語句體2.語句中可以進(jìn)行嵌套




第三種:

if?? -?? else?? if????-?? else:

if (???? a???? )??? {?? ?b ??? ;}

else? if? (????? c????? )??? {??? d??? ;}

else??? {?? m?? ;}
例如if(a)b;else if(c)d;else m;
如果a成立,則執(zhí)行b,否則如果c成立,則執(zhí)行d,否則執(zhí)行m。有三種情況a,!a&c,!a&!c。if(判斷語句){語句體?? 1;

}else if{?????語句體2??? ;

}else? if{??????語句體3??;

}else{?????????語句體N?? ;

}該語句執(zhí)行時(shí),拿當(dāng)前要判斷的條件去和?if 之后條件匹配,如果匹配到,執(zhí)行對(duì)應(yīng)的語句體,如果沒有匹配到,執(zhí)行語句體n,最后執(zhí)行大括號(hào)之后的語句。

if??? - else if??? - else 結(jié)構(gòu)中的else 是可以省略的,但是要看業(yè)務(wù)條件


swith??? -?? case?? :

switch - case 結(jié)構(gòu)
?
?switch (變量) {
?????????? case 確定值1:
????????? ?處理方式1;
??????????? break;
?????????? case 確定值2:
?????????? 處理方式2;
????????? ?break;
???????????default:
?????????? 最終處理方式;
?????????? ?break;
?}

運(yùn)行流程:

當(dāng)程序運(yùn)行到switch - case 結(jié)構(gòu)的時(shí)候,直接用switch 之后的變量去匹配 case對(duì)應(yīng)的值,如果匹配執(zhí)行對(duì)應(yīng)的處理方式,運(yùn)行到break跳出switch - case 結(jié)構(gòu)。如果沒有匹配項(xiàng),執(zhí)行default里面的處理方式,遇到break跳出。

注意事項(xiàng):
??1. 在switch-case 結(jié)構(gòu)中,break 可以省略,但是會(huì)影響之前的case 選項(xiàng)
??2. 在switch - case 結(jié)構(gòu)中,只能只執(zhí)行在case 或者 default里面的語句?剩下一概不執(zhí)行,而且在Java中編譯不過。
??3. 在switch-case 結(jié)構(gòu)中,不允許出現(xiàn)相同的case 選擇,會(huì)報(bào)錯(cuò)
??4. 在switch-case 結(jié)構(gòu)中,可以省略default

案例:import java.util.Scanner;//打包

class SwitchTest {
?public static void main(String[] args) {
?
??//提示用戶選擇自己的菜品
??Scanner sc = new Scanner(System.in);//獲取鍵盤內(nèi)容
??System.out.println("請(qǐng)問客官您點(diǎn)什么?");
??System.out.println("1.紅燒肉~~~");
??System.out.println("2.糖醋里脊~~~");
??System.out.println("3.蒜蓉油麥菜~~~");
??System.out.println("4.麻辣小龍蝦~~~");
??System.out.println("5.哈爾濱冰啤~~");
??int choose = sc.nextInt(); //從鍵盤上獲取用戶的選擇
??
??//利用switch - case 結(jié)構(gòu),對(duì)用戶輸入的數(shù)據(jù)進(jìn)行處理
??switch (choose) {//choose在上面定義了,指鍵盤上獲取的內(nèi)容。
???//System.out.println("你猜猜這個(gè)會(huì)出現(xiàn)嗎?"); //? 不會(huì)
???case 1:
????System.out.println("紅燒肉一份~~~");
????break;
???case 2:
????System.out.println("糖醋里脊一份~~~");
????break;
???case 3:
????System.out.println("蒜蓉油麥菜一份~~~");
????break;
???case 4:
????System.out.println("麻辣小龍蝦一份~~~");
????break;
???case 5:
????System.out.println("哈爾濱冰啤~~~");
????break;
???/*default:
????System.out.println("不鬧我們還是朋友");//用戶什么也沒有選擇,可以省略
????break;
???*/
??}
???
??System.out.println("Program Ending");//當(dāng)省略default,又需要輸出,不省略default時(shí),用戶輸入錯(cuò)誤,會(huì)兩個(gè)同時(shí)出現(xiàn)。
?}
}

葉子是初學(xué)者,暫時(shí)的想法,若有錯(cuò)誤,請(qǐng)指出錯(cuò)誤!一定改正!謝謝~~~


?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1 順序語句 語句:使用分號(hào)分隔的代碼稱作為一個(gè)語句。 注意:沒有寫任何代碼只是一個(gè)分號(hào)的時(shí)候,也是一條語句,...
    哈哈哎呦喂閱讀 482評(píng)論 0 0
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子...
    趙宇_阿特奇閱讀 2,086評(píng)論 0 2
  • 【程序1】 題目:古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長到第三個(gè)月后每個(gè)月又生一對(duì)兔...
    葉總韓閱讀 5,229評(píng)論 0 41
  • 流程控制 目錄:順序結(jié)構(gòu)分支循環(huán)循環(huán)嵌套控制循環(huán)的關(guān)鍵詞 總會(huì)出現(xiàn)一種場景:要滿足某個(gè)條件時(shí),才去做一件事情。 ...
    Ansaxnsy閱讀 1,142評(píng)論 0 1
  • 今天還是在昭通工地上,早上在項(xiàng)目部開會(huì)計(jì)劃工期的事,因?yàn)榫频?月15日要開業(yè),所以要趕工期,但是工人們都很給力...
    李代唐閱讀 275評(píng)論 0 0

友情鏈接更多精彩內(nèi)容