條件語(yǔ)句2

知識(shí)點(diǎn)
switch語(yǔ)句
一、 switch語(yǔ)句
(一) 問(wèn)題

  1. 問(wèn)題1
    李四的年終工作評(píng)定,
    如果定為A級(jí),則工資漲500元,
    如果定為B級(jí),則工資漲200元,
    如果定為C級(jí),工資不變,
    如果定為D級(jí)工資降200元,
    如果定為E級(jí)工資降500元.
    設(shè)李四的原工資為5000,請(qǐng)用戶(hù)輸入李四的評(píng)級(jí),然后顯示李四來(lái)年的工資.

  2. 使用條件語(yǔ)句解決
    Console.WriteLine("請(qǐng)輸入對(duì)李四的年終評(píng)定");
    string level = Console.ReadLine();//A B C D E 亂七八糟
    double salary = 5000;
    if (level == "A")
    {
    salary += 500;//salary=salary+500;
    }
    else if (level == "B")
    {
    salary += 200;
    }
    else if (level == "C")
    {
    // salary += 0;
    }
    else if (level == "D")
    {
    salary -= 200;
    }
    else if (level == "E")
    {
    salary -= 500;
    }
    else//輸入錯(cuò)誤
    {
    Console.WriteLine("輸入有誤蒸辆,程序退出=练健7柚娩践!");
    }
    Console.WriteLine("李四明年的工資是{0}", salary);
    Console.ReadKey();
    BUG:
    當(dāng)輸入亂七八糟的數(shù)據(jù)時(shí)候三妈,Console.WriteLine("李四明年的工資是{0}", salary);這句代碼不執(zhí)行陪腌。
    bool b = true;
    else//輸入錯(cuò)誤
    {
    Console.WriteLine("輸入有誤辱魁,程序退出!J肌染簇!");
    b = false;
    }
    if (b)
    {
    Console.WriteLine("李四明年的工資是{0}", salary);
    }
    Console.ReadKey();

  3. 問(wèn)題2
    對(duì)學(xué)員的結(jié)業(yè)考試成績(jī)?cè)u(píng)測(cè)
    成績(jī) >= 90 :A
    90 > 成績(jī) >= 80 :B
    80 > 成績(jī) >= 70 :C
    70 > 成績(jī) >= 60 :D
    成績(jī) < 60 :E

  4. 問(wèn)題2解決
    Console.WriteLine("請(qǐng)輸入你的考試成績(jī)");
    int score = Convert.ToInt32(Console.ReadLine());
    if (score >= 90)
    {
    Console.WriteLine("A");
    }
    else//<90
    {
    if (score >= 80)
    {
    Console.WriteLine("B");
    }
    else//<80
    {
    if (score >= 70)
    {
    Console.WriteLine("C");
    }
    else//<70
    {
    if (score >= 60)
    {
    Console.WriteLine("D");
    }
    else
    {
    Console.WriteLine("E");
    }
    }
    }
    }
    (二) switch-case
    對(duì)于判斷區(qū)間的語(yǔ)句,我們一般用if-else
    對(duì)于定值的判斷强岸,我們一般用switch語(yǔ)句

  5. 語(yǔ)法
    switch(要判斷的變量或者表達(dá)式)
    {
    case 值1:要執(zhí)行的代碼;
    break;
    case 值2:要執(zhí)行的代碼;
    break;
    case 值3:要執(zhí)行的代碼;
    break;
    ........
    default:要執(zhí)行的代碼;
    break;
    }

  6. 流程圖

1.png
  1. 執(zhí)行過(guò)程
    程序運(yùn)行到switch處锻弓,
    首先計(jì)算switch后面所帶的小括號(hào)中的變量或者表達(dá)式的值,拿著計(jì)算出來(lái)的這個(gè)結(jié)果跟每個(gè)case的值進(jìn)行匹配蝌箍,一旦匹配成功青灼,則執(zhí)行該case所帶的代碼塊,
    如果跟每個(gè)casa所帶的值都不匹配妓盲,則看當(dāng)前switch-csae結(jié)構(gòu)中是否有default聚至,如果有default,則執(zhí)行default所帶的代碼塊本橙,否則的話(huà)扳躬,什么都不做。

  2. switch-case解決
    bool b = true;
    Console.WriteLine("請(qǐng)輸入對(duì)李四的一個(gè)年終評(píng)定");
    string level = Console.ReadLine();
    double salary = 5000;
    switch (level)
    {
    case "A": salary += 500;
    break;
    case "B": salary += 200;
    break;
    case "C": break;
    case "D": salary -= 200;
    break;
    case "E": salary -= 500;
    break;
    default: Console.WriteLine("輸入有誤,程序退出4摇;魇ぁ!");
    b = false;
    break;
    }
    if (b)
    {
    Console.WriteLine("李四明年的工資是{0}", salary);
    }
    Console.ReadKey();
    (三) 練習(xí)

  3. 作業(yè)1:練習(xí)1讓用戶(hù)輸入姓名,然后顯示出這個(gè)人上輩子是什么職業(yè)役纹。(老楊,老蘇,老鄒,老馬,老虎,老牛,老蔣,小楊)
    Console.WriteLine("請(qǐng)輸入要計(jì)算的人的姓名");
    string name = Console.ReadLine();
    switch (name)
    {
    case "老楊":
    Console.WriteLine("老楊上輩子是折翼的天屎");
    break;
    case "老蘇":
    Console.WriteLine("老蘇上輩子是老鴇子");
    break;
    case "老鄒":
    Console.WriteLine("老鄒上輩子是老蘇手下的頭牌");
    break;
    case "老虎":
    Console.WriteLine("上輩子被武松掛了");
    break;
    case "老牛":
    Console.WriteLine("上輩子是Cow");
    break;
    default:
    Console.WriteLine("上輩子沒(méi)這個(gè)人");
    break;
    }
    Console.ReadKey();

  4. 練習(xí)2
    對(duì)學(xué)員的結(jié)業(yè)考試成績(jī)?cè)u(píng)測(cè)(改成用Switch來(lái)做)
    成績(jī) >= 90 :A
    90 > 成績(jī) >= 80 :B
    80 > 成績(jī) >= 70 :C
    70 > 成績(jī) >= 60 :D
    成績(jī) < 60 :E
    Console.WriteLine("請(qǐng)輸入考試成績(jī)");
    int score = Convert.ToInt32(Console.ReadLine());
    switch (score / 10)
    {
    case 10://當(dāng)連續(xù)的幾個(gè)case中所帶的代碼一樣的時(shí)候偶摔,可以省略前面的,只寫(xiě)最后一個(gè)case中的代碼
    case 9: Console.WriteLine("A");
    break;
    case 8: Console.WriteLine("B");
    break;
    case 7: Console.WriteLine("C");
    break;
    case 6: Console.WriteLine("D");
    break;
    default: Console.WriteLine("E");
    break;
    }
    Console.ReadKey();

  5. 作業(yè)2:練習(xí)3:請(qǐng)用戶(hù)輸年份,再輸入月份,輸出該月的天數(shù).
    Console.WriteLine("請(qǐng)輸入一個(gè)年份");
    int year = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("請(qǐng)輸入一個(gè)月份");
    int month = Convert.ToInt32(Console.ReadLine());
    if (month >= 1 && month <= 12)
    {
    int day = 0;//存儲(chǔ)天數(shù)
    switch (month)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12: day = 31;
    break;
    case 2:
    if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
    {
    day = 29;
    }
    else
    {
    day = 28;
    }
    break;
    default: day = 30;
    break;
    }//swich
    Console.WriteLine("{0}年{1}月有{2}天", year, month, day);
    }//if
    else
    {
    Console.WriteLine("月份必須在1~12月之間促脉,程序退出3秸!瘸味!");
    }
    二宫仗、 三元表達(dá)式
    (一) 語(yǔ)法
    表達(dá)式1?表達(dá)式2 :表達(dá)式3
    (二) 執(zhí)行過(guò)程
    表達(dá)式1一般為一個(gè)關(guān)系表達(dá)式,
    如果關(guān)系表達(dá)式1的結(jié)果為true旁仿,那么表達(dá)式2的值就是整個(gè)三元表達(dá)式的值藕夫,
    否則,表達(dá)式3就是整個(gè)三元表達(dá)式的值枯冈。
    (三) 注意
    表達(dá)式2和表達(dá)式3的結(jié)果類(lèi)型必須一致毅贮,并且也要和整個(gè)三元表達(dá)式的結(jié)果類(lèi)型一致。
    (四) 舉例說(shuō)明

  6. 練習(xí)1:提示用戶(hù)輸入兩個(gè)數(shù)字 我們輸出比較大的那個(gè)數(shù)字
    Console.WriteLine("請(qǐng)輸入第一個(gè)數(shù)字");
    int numberOne = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("請(qǐng)輸入第二個(gè)數(shù)字");
    int numberTwo = Convert.ToInt32(Console.ReadLine());

        //表達(dá)式1?表達(dá)式2:表達(dá)式3;
        int max = numberOne > numberTwo ? numberOne : numberTwo;
        Console.WriteLine(max);
        Console.ReadKey();
    

三尘奏、 總結(jié):if-else if與switch的比較
(五) 相同點(diǎn):
都可以實(shí)現(xiàn)多分支結(jié)構(gòu)
(六) 不同點(diǎn):
(1) . if-else if:可以處理范圍
(2) . switch:一般 只能用于等值比較
(七) 三者的區(qū)別:
if有條件的執(zhí)行一條語(yǔ)句
if-else有條件的執(zhí)行一條或另一條語(yǔ)句
switch有條件的執(zhí)行一組語(yǔ)句中的一條語(yǔ)句

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末滩褥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子炫加,更是在濱河造成了極大的恐慌铸题,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件琢感,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡探熔,警方通過(guò)查閱死者的電腦和手機(jī)驹针,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)诀艰,“玉大人柬甥,你說(shuō)我怎么就攤上這事∑渎ⅲ” “怎么了苛蒲?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)绿满。 經(jīng)常有香客問(wèn)我臂外,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任漏健,我火速辦了婚禮嚎货,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蔫浆。我一直安慰自己殖属,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布瓦盛。 她就那樣靜靜地躺著洗显,像睡著了一般。 火紅的嫁衣襯著肌膚如雪原环。 梳的紋絲不亂的頭發(fā)上挠唆,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音扮念,去河邊找鬼损搬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛柜与,可吹牛的內(nèi)容都是我干的巧勤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼弄匕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼颅悉!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起迁匠,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤剩瓶,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后城丧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體延曙,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年亡哄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了枝缔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蚊惯,死狀恐怖愿卸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情截型,我是刑警寧澤趴荸,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站宦焦,受9級(jí)特大地震影響发钝,放射性物質(zhì)發(fā)生泄漏顿涣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一笼平、第九天 我趴在偏房一處隱蔽的房頂上張望园骆。 院中可真熱鬧,春花似錦寓调、人聲如沸锌唾。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)晌涕。三九已至,卻和暖如春痛悯,著一層夾襖步出監(jiān)牢的瞬間余黎,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工载萌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惧财,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓扭仁,卻偏偏與公主長(zhǎng)得像垮衷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乖坠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 條件語(yǔ)句2 知識(shí)點(diǎn) switch語(yǔ)句 一搀突、 switch語(yǔ)句 (一) 問(wèn)題 1. 問(wèn)題1 李四的年終工作評(píng)定, 如...
    拾起_518閱讀 488評(píng)論 0 0
  • 條件語(yǔ)句2 知識(shí)點(diǎn) switch語(yǔ)句 一雌隅、 switch語(yǔ)句 (一) 問(wèn)題 1. 問(wèn)題1 李四的年終工作評(píng)定, 如...
    youthisY閱讀 331評(píng)論 0 0
  • 知識(shí)點(diǎn): 注:int類(lèi)型默認(rèn)32位有大小范圍 且第一位為符號(hào)位 0 為正 1 為負(fù) 8.4作業(yè) A:1、風(fēng)力預(yù)警系...
    cGunsNRoses閱讀 1,090評(píng)論 0 0
  • 1.單分支語(yǔ)句if if語(yǔ)句的表達(dá)式:if(條件){語(yǔ)句塊1悬秉;語(yǔ)句塊2}//如果我們if語(yǔ)句塊只有一個(gè)語(yǔ)句,那么...
    Unity開(kāi)發(fā)閱讀 1,090評(píng)論 1 1
  • 循環(huán)結(jié)構(gòu)要么痛苦的堅(jiān)持游戲結(jié)束 可能會(huì)升級(jí)要么結(jié)束游戲繼續(xù)的痛苦 可能有遺憾知識(shí)點(diǎn)(1) . whil...
    拾起_518閱讀 562評(píng)論 0 0