劉海燕 廊坊師範學院資訊科技提高班 第八期
精典示例——if語句巢狀
精典示例1——提示使用者名稱名和密碼是否正確
例1:提示使用者輸入使用者名稱,然後再提示輸入密碼。如果使用者名稱是"admin"並且密碼是“888888”則提示正確,否則提示錯誤,如果使用者名稱不是admin還提示使用者名稱不存在。
寫法1:
namespace 布林表示式 { class Program { static void Main(string[] args) { //提示使用者輸入使用者名稱,然後再提示輸入密碼,如果使用者名稱是"admin"並且密碼是“888888”則提示正確,否則提示錯誤。如果使用者名稱不是admin還提示使用者名稱不存在。 Console.WriteLine("請輸入使用者名稱:"); string userName = Console.ReadLine(); Console.WriteLine("請輸入密碼:"); string passWord = Console.ReadLine(); if (userName == "admin" && passWord == "888888") { Console.WriteLine("使用者名稱和密碼輸入正確!"); } else { Console.WriteLine("使用者名稱、密碼錯誤!"); if (userName != "admin") { Console.WriteLine("使用者名稱不存在!"); } } Console.ReadKey(); } } }
寫法2:
namespace 布林表示式 { class Program { static void Main(string[] args) { //提示使用者輸入使用者名稱,然後再提示輸入密碼,如果使用者名稱是"admin"並且密碼是“888888”則提示正確,否則提示錯誤。如果使用者名稱不是admin還提示使用者名稱不存在。 Console.WriteLine("請輸入使用者名稱:"); string userName = Console.ReadLine(); Console.WriteLine("請輸入密碼:"); string passWord = Console.ReadLine(); if (userName == "admin" && passWord == "888888") { Console.WriteLine("使用者名稱和密碼輸入正確!"); } else { if (userName != "admin"&&passWord=="888888") { Console.WriteLine("此使用者名稱不存在!"); } else { if (userName=="admin"&&passWord != "888888") { Console.WriteLine("密碼不正確!"); } else { Console.WriteLine("使用者名稱和密碼都不正確!"); } } } Console.ReadKey(); } } }
使用者名稱(admin) |
密碼(888888) |
提示資訊 |
√ |
√ |
使用者名稱和密碼輸入正確! |
√ |
× |
密碼不正確! |
× |
√ |
此使用者名稱不存在! |
× |
× |
使用者名稱和密碼都不正確! |
精典示例2——提示使用者名稱輸入年齡,判斷是否允許檢視
練習2:提示使用者輸入年齡.如果大於等於18.則告知使用者可以檢視.如果小於10歲,則告知不允許檢視.如果大於等於10歲.則提示使用者是否繼續檢視 (yes、no)·如果輸入 的是yes則提示使用者可以檢視,否則提示不可以檢視。(測試邊界條件,-1,88888888888888888888888,aaaa。微軟如狼似虎的Tester)
條件 |
提示資訊 |
age>=18 |
可以檢視 |
age<10 |
不允許檢視 |
yes age>=10 no 輸入其它 |
繼續檢視 不繼續檢視 輸入錯誤 |
程式碼示例:
namespace 布林表示式
{
class Program
{
static void Main(string[] args)
{
//提示使用者輸入年齡.如果大於等於18.則告知使用者可以檢視.如果小於10歲,則告知不允許檢視.如果大於等於10歲.則提示使用者是否繼續檢視 (yes、no)·如果輸入 的是yes則提示使用者可以檢視,否則提示不可以檢視。
Console.WriteLine("請輸入年齡:");
string strAge = Console.ReadLine();
int age = Convert.ToInt32(strAge);
if (age>=18)
{
Console.WriteLine("可以檢視");
}
else if (age < 10)
{
Console.WriteLine("不允許檢視");
}
else //前兩個條件已經將其他情況排除,所以不用再寫else if(age>=10)
{
Console.WriteLine("是否繼續檢視(yes、no)?");
string isContinue=Console.ReadLine();
if (isContinue=="yes")
{
Console.WriteLine("繼續檢視");
}
else if (isContinue == "no")
{
Console.WriteLine("不繼續檢視");
}
else
{
Console.WriteLine("輸入錯誤!");
}
}
Console.ReadKey();
}
}
}
總結,上面的兩個例子主要練習的是:
if語句的巢狀
變數名命名要用有意義的變數名(如例中的變數名strAge,isContinue)。
測試程式,每種分支都要測試一遍。
寫註釋(關鍵地方),這樣程式碼看起來很清淅,易於別人讀懂。