代碼的執(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ò)誤!一定改正!謝謝~~~
?