随便玩玩之C# 7 程序控制-条件判断if...else
随便玩玩之C# 7 程序控制-条件判断if...else
1.条件判断if...else...
上一节中用两个if做了两次条件判断,即明天下雨,在家打游戏,明天不下雨,去公园玩。两次if条件判断除了判断内容有关系外,其他的没有任何关系。其实就是单路分支,条件为真即执行,条件为假不执行。一件事情使用两段代码来实现显得啰嗦。这一节学习if...else...条件判断语句,在一段代码里完成双路分支,即条件为真做什么,条件为假做什么。即条件成立做什么,条件不成立做什么。
if...else...很简单,伪代码如下所示:
如果 (明天下雨) { 在家打游戏。 } 否则 { 去公园玩。 } if (tomorrowWeather) { Console.WriteLine("明天下雨,在家打游戏。"); } else { Console.WriteLine("明天不下雨,去公园玩。"); }
完整的代码如下:
using System; namespace if_else { public class Program { public static void Main(string[] args) { Console.WriteLine("*************************"); bool tomorrowWeather; //声明一个布尔类型的变量,表示明天天气情况。 //明天下雨为真(true),不下雨为假(false)。 tomorrowWeather = true; if (tomorrowWeather) { Console.WriteLine("明天下雨,在家打游戏。"); } else { Console.WriteLine("明天不下雨,去公园玩。"); } Console.WriteLine("*************************"); } } }
运行结果:
可以尝试修改 tomorrowWeather的值为false,程序就会执行else分支。
2.if...else if...else...
一个 if 语句后可跟一个可选的 else if...else 语句,这可用于判断多个条件。
当使用 if...else if...else 语句时,以下几点需要注意: 一个 if 后可跟零个或一个 else,它必须在任何一个 else if 之后。一个 if 后可跟零个或多个 else if,它们必须在 else 之前。一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。
如:考试试卷满分100分,按照分数分五个等次:优秀:90-100分,良好:80-90分,中等:70-80分,几个:60-70分,不及格:低于60分。
可以使用if...else if...else..进行编程分类。
using System; namespace StudentScore { public class Program { public static void Main(string[] args) { Console.WriteLine("*************************"); //声明一个变量studentScore,存储学生成绩 int studentScore; //将输入的字符串值转换为整型数值并赋给变量studentScore //其中Convert.ToInt32表示数据类型转换,转换到整数类型,即int类型 studentScore = Convert.ToInt32( Console.ReadLine()); //条件判断:&& 表示括号内的条件判断的两个判断结果都为真。 if( studentScore < 60 && studentScore >= 0) { Console.WriteLine("不及格。"); } else if(studentScore < 70 && studentScore >= 60) { Console.WriteLine("及格"); } else if(studentScore < 80 && studentScore >= 70) { Console.WriteLine("中等"); } else if(studentScore < 90 && studentScore >= 80) { Console.WriteLine("良好"); } else if(studentScore <= 100 && studentScore >= 90) { Console.WriteLine("优秀"); } else { Console.WriteLine("输入不正确!"); } Console.WriteLine("*************************"); } } }
上面代码的新内容:
一、&&表示两个判断条件都为真,即两个条件都为真。两个条件其中一个为真可用||表示。
如:
如果想要成绩好,必须努力学习,且上课认真听讲。即(努力学习 && 上课认真听讲)。
如果想要快速找到女朋友,要么长的帅,要么有钱。即(长的帅 || 有钱)。
二、>=、<=表示大于等于、小于等于。是比较运算符。
三、数值类型转换。Convert.ToInt32。
运行结果:
3.if嵌套
if后面大括号里面可以再写入if语句或if...else...语句。
如:老板来几个又大又红的苹果。
namespace BigAndRedApple { public class Program { public static void Main(string[] args) { Console.WriteLine("*************************"); string appleWeight="big"; string appleColor= "red"; // 第一层的if...else...判断大不大 if(appleWeight == "big") { //第二层的if...else...判断红不红 if(appleColor == "red") { Console.WriteLine("就买这种的"); } else { Console.WriteLine("这种苹果不红"); } } else { Console.WriteLine("这种苹果又不大也不红,我不要了"); } Console.WriteLine("*************************"); } } }
运行结果:
4.条件表达式
c# 语言中提供了一种称为条件运算符或问号运算符的特殊运算符,该运算符是唯一要求三个操作数的运算符,即三目运算符。该操作符由“问号”和“冒号”两个符号构成,把三个操作数隔开,形成条件表达式。条件表达式就是if...else...的简便写法,条件表达式的格式为:
表达式?语句1:语句2
代码如下:
using System; namespace Conditional_Expression { public class Program { public static void Main(string[] args) { Console.WriteLine("*************************"); int hour = 16; //三目运算符是个表达式,具有运算结果,必须赋值给变量。或直接使用Console.Write()输出。 string str1 = hour < 12 ? "现在是上午" : "现在是下午"; Console.WriteLine(str1); Console.WriteLine("*************************"); //以下代码与上面的效果相同 if (hour < 12) { Console.WriteLine("现在是上午"); } else { Console.WriteLine("现在是下午"); } Console.WriteLine("*************************"); } } }
运行结果:
5.WPF中的CheckBox控件
CheckBox控件为多选按钮。
将工具箱中的Label控件拖放到WPF设计器的空白区域。选中WPF设计器中Label控件,将其名称修改为OutputLabel。
将工具箱中的Button控件拖放到WPF设计器的空白区域。选中WPF设计器中Button控件,将其Content属性修改为确定。
双击Button按钮,在Button_Click()中输入代码。
private void Button_Click(object sender, RoutedEventArgs e) { string workDay="你选择的工作日为:"; if ((bool)CheckBoxWeek1.IsChecked) {workDay += CheckBoxWeek1.Content;} if ((bool)CheckBoxWeek2.IsChecked) { workDay += CheckBoxWeek2.Content; } if ((bool)CheckBoxWeek3.IsChecked) { workDay += CheckBoxWeek3.Content; } if ((bool)CheckBoxWeek4.IsChecked) { workDay += CheckBoxWeek4.Content; } if ((bool)CheckBoxWeek5.IsChecked) { workDay += CheckBoxWeek5.Content; } if ((bool)CheckBoxWeek6.IsChecked) { workDay += CheckBoxWeek6.Content; } if ((bool)CheckBoxWeek7.IsChecked) { workDay += CheckBoxWeek7.Content; } OutputLabel.Content = workDay; }
运行结果:
参考资料:
1. if...else...
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/statements/selection-statements#the-if-statement
https://www.runoob.com/csharp/csharp-if-else.html
2.条件运算符
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/conditional-operator
3.布尔逻辑运算符&
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/boolean-logical-operators
4.比较运算符> < ==
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/comparison-operators
5.Convert类及相关方法
https://docs.microsoft.com/zh-cn/dotnet/api/system.convert?view=net-6.0
6.CheckBox控件
https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.controls.checkbox?view=net-6.0
7.+ 和 += 运算符
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/addition-operator
--EOF--