随便玩玩之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控件为多选按钮。

 

新建一个WPF项目,解决方案命名为WPFCheckBox。

将工具箱中的Label控件拖放到WPF设计器的空白区域。选中WPF设计器中Label控件,将其名称修改为OutputLabel。

将工具箱中的Button控件拖放到WPF设计器的空白区域。选中WPF设计器中Button控件,将其Content属性修改为确定。

将工具箱中的CheckBox控件拖放到WPF设计器的空白区域。拖放7个,分别将其名称修改为CheckBoxWeek1-7,将其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--

 

posted @ 2021-09-19 21:21  冲浪的奶糖  阅读(446)  评论(0编辑  收藏  举报