C#程式設計基礎第四課:c#中的邏輯運算子、多重if語句、巢狀if語句的使用
知識點:邏輯運算子、多重if語句、巢狀if語句
1、邏輯運算子
練習1:邏輯或、邏輯與運算子的使用
本次計算機考試成績規定:筆試成績等於100分且機試成績大於等於60分,或筆試成績大於等於60分且機試成績等於100分, 輸出“成績優秀”, 否則輸出“繼續努力”
static void Main(string[] args) { /* *用程式描述 : * 筆試成績等於100分且機試成績大於等於60分, * 或筆試成績大於等於60分且機試成績等於100分 * 輸出“成績優秀” * 否則輸出“繼續努力” */ Console.Write("請輸入筆試成績:"); double written = double.Parse(Console.ReadLine()); Console.Write("請輸入機試成績:"); double lab = double.Parse(Console.ReadLine()); if (written == 100 && lab >= 60 || written >= 60 && lab == 100) { Console.WriteLine("成績優秀"); } else { Console.WriteLine("繼續努力"); } Console.ReadLine(); }
運算子的優先順序:
- 最高的優先順序:小括號,即()
- 最低的優先順序:賦值運算子,即=
- 優先順序順序:! > 算術運算子 > 比較運算子 > && > ||
- 當運算子較多,無法確定運算子執行順序時,可以使用小括號控制一下順序,如(written == 100 && lab >= 60) || (written >= 60 && lab == 100)
練習2:邏輯非運算子的使用
判斷輸入天氣,不下雨就集合,下雨則不集合
static void Main(string[] args) { Console.WriteLine("請輸入天氣情況:(下雨、晴天、陰天)"); string weather = Console.ReadLine(); if (!(weather == "下雨"))//邏輯非運算子,當條件為真時,結果為假 { Console.WriteLine("集合"); } else { Console.WriteLine("不集合"); } Console.ReadLine(); }
2、多重if語句
大家在使用選擇結構時,還會遇到不止判斷一次的情況,這裡有個例子:對學員的結業考試成績進行評測,如果成績大於等於90分,輸出“優秀” 如果成績大於等於80分,輸出“良好” 如果成績大於等於60分,輸出“及格” ,如果成績小於60分,輸出“不及格”。分析這個示例,示例中先要判斷成績大於等於90的情況,沒有90再判斷成績大於等於80的情況,沒有80再判斷成績大於等於60的情況,最後是沒有60的情況。程式至少要判斷三次。多重選擇結構可以處理這種多重判斷的情況。
多重if語句的語法結構:
注意:示例中進行了兩次判斷,實際上多重選擇結構可以進行任意多次判斷,也就是說中間可以加任意多的else if子句
static void Main(string[] args)
{
/*
*如果成績大於等於90分,輸出“優秀”
*如果成績大於等於80分,輸出“良好”
*如果成績大於等於60分,輸出“及格”
*如果成績小於60分,輸出“不及格”
*/
Console.Write("請輸入考試成績:");//輸出提示資訊後不換行
double score = double.Parse(Console.ReadLine());//將使用者輸入的成績轉換為double型別後,賦值給變數score
if (score >= 90)
{
Console.WriteLine("優秀");
}
else if (score >= 80)
{
Console.WriteLine("良好");
}
else if (score >= 60)
{
Console.WriteLine("及格");
}
else
{
Console.WriteLine("不及格");
}
Console.ReadLine();//等待使用者輸入
}
多重選擇結構對於初學者來說,是非常容易出錯的知識點,這裡提醒一下大家:
- 多重選擇結構中每個條件判斷成立後,程式會執行條件後面的程式碼然後結束,不會再進行後面的判斷,只有不成立的情況下,才會判斷後面的條件。
- 條件的設定的順序是:把難滿足的條件放前面,容易滿足的條件放後面,否則可能出錯:如果把條件成績大於等於60放前面,大於等於80放後面,那麼90分的成績,在判斷時先滿足前面的條件,後面的條件不會進行判斷了,90分就是中等了。
應用:多重if特別適合某個變數處於某個連續區間時的情況(如學習成績判斷、商場消費贈禮)
程式碼練習:
用程式描述如下問題:某商場促銷,如果客戶消費滿300元,打7折,消費200元以上,打8折,消費100元以上,打9折,其餘按原價計算。
3、巢狀if語句
學校舉行運動會,百米賽跑成績在 12 秒以內的學生有資格進決賽,根據性別分為男子組和女子組,大於12秒就淘汰。分析下示例,大家會發現:首先,要判斷是否能夠進入決賽,在確定進入決賽的情況下,再判斷是進入男子組,還是進入女子組。這種一個條件成立的情況下,再進行另一個條件判斷的結構,就需要用巢狀選擇結構完成。
巢狀if語句
static void Main(string[] args)
{
/*
* 學校短跑比賽,如果比賽成績小於等於12秒,進入決賽。
* 如果是男生,進入男子組決賽,如果是女生,進入女子組決賽。
* 如果比賽成績大於12秒,則淘汰!
*/
Console.WriteLine("請輸入比賽成績:");
int result = int.Parse(Console.ReadLine());
if (result <= 12)
{
Console.WriteLine("請輸入選手性別:");
string gender = Console.ReadLine();
if (gender == "男")
{
Console.WriteLine("進入男子組決賽");
}
else
{
Console.WriteLine("進入女子組決賽");
}
}
else
{
Console.WriteLine("淘汰");
}
Console.ReadLine();//等待使用者輸入
}
程式碼練習:
用程式描述如下問題:某商場促銷,如果客戶消費滿1000元,打8折,同時如果是普通會員送100元代金券,如果是VIP會員送200元代金券;不滿1000元,無論是否會員均按全價計算。