c# 基礎switct---case用於處理多條件的定值的判斷


題目:李四的年終工作評定,如果定為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();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM