題目:李四的年終工作評定,如果定為A級,則工資漲500元,如果定為B級,則工資漲200元,如果定為C級,工資不變,如果定為D級工資降200元,如果定為E級工資降500元。
設李四原工資為5000,請用戶輸入李四的評級,然后顯示李四來年的工資。
用If判斷來做題如下代碼:
if后面跟判斷條件,或者說表達式,其結果必須是bool類型,即結果為“true” or “false”
1 Console.WriteLine("請輸入李四的工作年終評定:"); 2 string level = Console.ReadLine(); 3 double salary = 5000; 4 bool b = true; 5 6 if (string.Compare(level,"A") == 0) //5中不同的string比較相等. 7 { 8 salary += 500; 9 } 10 else if(level.CompareTo("B")==0) 11 { 12 salary += 200; 13 } 14 else if(string.Equals(level,"C")) 15 { 16 17 } 18 else if(level.Equals("D")) 19 { 20 salary -= 200; 21 } 22 else if (level == "E") // 23 { 24 salary -= 500; 25 } 26 else 27 { 28 Console.WriteLine("輸入錯誤,退出程序"); 29 b = false; //輸入錯誤if判斷將不執行來年工資的顯示 30 } 31 if (b) 32 { 33 Console.WriteLine("李四的來年工資經評級后為每月{0}元", salary); 34 } 35 Console.ReadKey();
switct 首先將括號中變量或者表達式的值計算出來,然后拿着這個值依次跟每個case后面所帶的值進行匹配,一旦匹配成功,則執行該case所帶的代碼,執行完成后,遇到break。跳出switch-case結構。如果,跟每個case所帶的值都不匹配。就看當前這個switch-case結構中是否存在default,如果有default,則執行default中的語句,如果沒有default,則退出switch-case結構。
上面的題目改 switch case結構。如下代碼:
1 Console.WriteLine("請輸入李四的工作年終評定:"); 2 string level = Console.ReadLine(); 3 double salary = 5000;//原工資 4 bool b = true; 5 switch (level)//用戶輸入的值,和下面的case匹配 6 { 7 case "A": 8 salary += 500; 9 break; //每個case都要有dreak;語句 10 case "B": 11 salary += 200; 12 break; 13 case "C": 14 break; 15 case "D": 16 salary -= 200; 17 break; 18 case "E": 19 salary -= 500; 20 break; 21 default: //如果匹配全不成功則執行下面的代碼 22 Console.WriteLine("輸入錯誤,退出程序"); 23 b = false; 24 break; 25 } 26 if (b) //當switch和case匹配不成功,則b = false 將不執行if中的語句 27 { 28 Console.WriteLine("李四的來年工資經評級后為每月{0}元", salary); 29 } 30 Console.ReadKey();
case語句可以合並再看下面的代碼:
1 long i = 6L; //聲明long整數類型 2 switch (i) //i的類型必須是:bool char string 整型 枚舉 3 { 4 case 1: 5 case 2: 6 case 3: 7 case 4: 8 case 5: 9 Console.WriteLine("今天星期{0},是工作日", i); 10 break; 11 case 6: 12 case 7: 13 Console.WriteLine("今天星期{0},是休息日", i); 14 break; 15 default: 16 Console.WriteLine("輸入錯誤,退出程序"); 17 break; 18 } 19 Console.ReadKey();