一、背景: 因編程的基礎差,因此最近開始鞏固學習C#基礎,後期把自己學習的東西,總結相應文章中,有不足處請大家多多指教。 二、簡介 C#提供以下類型的判斷語句: if語句 if-else語句 if else-if語句 cash-swith語句 本文章將逐一講解if、if-else、if else-i ...
一、背景:
因編程的基礎差,因此最近開始鞏固學習C#基礎,後期把自己學習的東西,總結相應文章中,有不足處請大家多多指教。
二、簡介
C#提供以下類型的判斷語句:
- if語句
- if-else語句
- if else-if語句
- cash-swith語句
本文章將逐一講解if、if-else、if else-if、cash-swith的語句。
三、 if語句
一個 if 語句 由一個布爾表達式後跟一個或多個語句組成。
1.語法:
if(判斷條件)
{
要執行的代碼;
}
判斷條件:一般為關係表達式或者布爾類型。
執行過程:程式運行到if處,首先判斷if所帶的小括弧中的判斷條件。如果條件成立返回true,則執行if大括弧的代碼,如果條件成立,也就返回一個false,則跳過if結構,繼續向下執行。
特點:先判斷在執行,有可能一條代碼也不執行。
用於一種情況的判斷
2.流程圖:
3.實例:
練習:如果跪鍵盤的時間大於60分鐘,那麼媳婦獎勵我晚飯不用做了
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _09if結構 { class Program { static void Main(string[] args) { //如果跪鍵盤的時間大於60分鐘,那麼媳婦獎勵我晚飯不用做了 Console.WriteLine("請輸入你跪鍵盤的時間"); int mins = Convert.ToInt32(Console.ReadLine()); //如果跪鍵盤的時間>60分鐘,不用做晚飯 if (mins > 60) { Console.WriteLine("好老公,不用跪鍵盤"); } Console.ReadKey(); } } }
四、 if-else 語句
一個 if 語句 後可跟一個可選的 else 語句,else 語句在布爾表達式為假時執行。
1.語法:
If(判斷條件)
{
執行的代碼;
}
else
{
執行的代碼;
}
2.執行過程:
程式執行到if處,首先判斷if的小括弧是判斷條件是否成立,如果成立,則返回一個true,則執行if所帶大括弧中的代碼,執行完成後,跳出if-else結構。
如果if所帶的小括弧的判斷條件不成立,也就是返回一個false。則跳出if語句,執行else所帶大括弧中的語句,執行完成後,跳出if-else結構。
3.特點:
先判斷,再執行,最少執行一條代碼
用於兩種情況的判斷
註意:else永遠跟離它最近的那個if配對
4.流程圖:
5.實例:
練習1:讓用戶輸入年齡,如果輸入的年齡大於23(含)歲,則給用戶顯示你到了結婚的年齡了.
//1.讓用戶輸入年齡,如果輸入的年齡大於23(含)歲,則給用戶顯示你到結婚的年齡 . Console.WriteLine("請輸入你的年齡"); int Age = Convert.ToInt32(Console.ReadLine()); if (Age >= 23) { Console.WriteLine("你到結婚年齡"); } else { Console.WriteLine("未到合法年齡結婚"); } Console.ReadKey();
練習2:如果老蘇的(chinese music):
—語文成績大於90並且音樂成績大於80
—語文成績等於100並且音樂成績大於70,則獎勵100元.
Console.WriteLine("請輸入你的語文成績"); int Chinese = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("請輸入你的音樂成績"); int Music = Convert.ToInt32(Console.ReadLine()); if ((Chinese > 90 && Music > 80) || (Chinese == 100 && Music > 70)) { Console.WriteLine("小蘇,給你獎勵100元哦"); } else { Console.WriteLine("你需要努力哦"); } Console.ReadKey();
練習3:讓用戶輸入用戶名和密碼,如果用戶名為admin,密碼為mypass,則提示登錄成功。
Console.WriteLine("請輸入你的用戶名"); string UserName = Console.ReadLine(); Console.WriteLine("請輸入你的密碼"); string Pwd = Console.ReadLine(); if (UserName == "admin" && Pwd == "mypass") { Console.WriteLine("登錄成功"); } else { Console.WriteLine("登錄名或密碼錯誤,請重新登錄"); } Console.ReadKey();
五、if else-if
1.作用:
用來處理多條件的區間性的判斷。
2.語法:
if(判斷條件)
{
要執行的代碼;
}
else if(判斷條件)
{
要執行的代碼;
}
else if(判斷條件)
{
要執行的代碼;
}
else if(判斷條件)
{
要執行的代碼;
}
........
else
{
要執行的代碼;
}
3.執行過程:
程式首先判斷第一個if所帶的小括弧中的判斷條件,如果條件成立,也就是返回一個true,則執行該if所帶的大括弧中的代碼,執行完成後,立即跳出if else-if結構。
如果第一個if所帶的判斷條件不成立,也就是返回一個false,則繼續向下進行判斷,依次的判斷每一個if所帶的判斷條件,如果成立,就執行該if所帶的大括弧中的代碼,如果不成立,則繼續向下判斷,如果 每個if所帶的判斷條件都不成立,就看當前這個if else-if結構中是否存在else。
如果有else的話,則執行else中所帶的代碼,如果沒有else,則整個 if-else if神馬都不做。else可以省略。
4.流程圖
5.實例:
練習1:學員的結業考試成績評測,成績>=90:A,90>成績>=80:B,80>成績>=70:C,70>成績>=60:D,成績<60:E
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _09if結構 { class Program { static void Main(string[] args) { //學員的結業考試成績評測 // 成績>=90:A //90>成績>=80:B //80>成績>=70:C //70>成績>=60:D //成績<60:E Console.WriteLine("請輸入學員的考試成績"); int socre = Convert.ToInt32(Console.ReadLine()); if (socre >= 90) { Console.WriteLine("A"); } else if (socre >= 80) { Console.WriteLine("B"); } else if (socre >= 70) { Console.WriteLine("C"); } else if (socre >= 60) { Console.WriteLine("D"); } else { Console.WriteLine("E"); } Console.ReadKey(); } } }
練習2:比較3個數字的大小 不考慮相等
Console.WriteLine("請輸入第一個數字"); int numberOne = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("請輸入第二個數字"); int numberTwo = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("請輸入第三個數字"); int numberThree = Convert.ToInt32(Console.ReadLine()); //三種情況 應該使用 if else-if來做 //如果第一個數字大於二個數字並且而大於三個數字 if (numberOne > numberTwo && numberOne > numberThree) { Console.WriteLine(numberOne); } //如果第二個數字大於一個數字並且也大於三個數字 else if (numberTwo > numberOne && numberTwo > numberThree) { Console.WriteLine(numberTwo); } //第三個數字大於第二個數字並且大於一個數字 else { Console.WriteLine(numberThree); } Console.ReadKey();
六、switch-case
1.作用:
用來處理多條件的定值的判斷。
2.語法:
switch(變數或者表達式的值)
{
case 值1:要執行的代碼;
break;
case 值2:要執行的代碼;
break;
case 值3:要執行的代碼;
break;
..........
default:要執行的代碼;
break;
}
3.執行過程:
程式執行到switch處,首先將括弧中變數或者表達式的值計算出來,然後拿著這個值依次跟每個case後面所帶的值進行匹配,一旦匹配成功,則執行該case所帶的代碼,執行完成後,遇到break。跳出switch-case結構。如果,跟每個case所帶的值都不匹配。就看當前這個switch-case結構中是否存在default,如果有default,則執行default中的語句,如果沒有default,則該switch-case結構,什麼都不做。
4.實例
練習1:李四的年終工作評定,如果定為A級,則工資漲500元, 如果定為B級,則工資漲200元,如果定為C級,工資不變,如果定為D級工資降200元,如果定為E級工資降500元.設李四的原工資為5000,請用戶輸入李四的評級,然後顯示李四來年的工資.
bool b = true; double salary = 5000; Console.WriteLine("請輸入李四的年終評定(A、B、C、D、E)");//A、B、C、 D、E string level = Console.ReadLine(); 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("輸入的有誤,請重新輸入"); b = false; break; } if (b) { Console.WriteLine("李四明年的工作是{0}元", salary); } Console.ReadKey();
練習2:讓用戶輸入姓名,然後顯示出這個人上輩子是什麼職業。
Console.WriteLine("請輸入姓名,我們將顯示出來這個人上輩子的職業"); string name = Console.ReadLine(); //老楊,老蘇,老鄒,老馬,老虎,老牛 switch (name) { case "老楊": Console.WriteLine("上輩子是抽大煙"); break; case "老蘇": Console.WriteLine("上輩子是貴妃"); break; case "老鄒": Console.WriteLine("上輩子是駙馬爺"); break; case "老馬": case "老牛": Console.WriteLine("上輩子是農民"); break; default: Console.WriteLine("不知道他上輩子是的職業"); break; } Console.ReadKey();