C#基础语法——逻辑运算符&分支结构

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 复习2
{
    class Program
    {
        static void Main(string[] args)
        {
            /*******关系运算符********/
            // > < >= <= == !=
            //主要用于比较运算,比较之后会得出一个结果,这个结果只能有真假两种情况(bool)
            //也就是说最后的结果需要用一个bool类型的变量来接收
            //在C#语言中不能用0代替false,也不能用非0代替true

            /*********分割线*********/

            //定义一个bool类型的变量,来接收两个整数a,b的比较结果
            int a = 5;
            int b = 3;
            bool result = a > b;
            Console.WriteLine(result);

            //定义两个整数,判断两个整数是否相等(==),并打印结果
            int a1 = 5;
            int b1 = 3;
            bool result1 = (a1 == b1);
            Console.WriteLine("a == b结果为{0}", result1);

            //定义两个整数,判断两个整数是否不相等(!=),并打印结果
            int a2 = 5;
            int b2 = 3;
            bool result2 = (a2 != b2);
            Console.WriteLine("a2 == b2结果为{0}", result2);

            /*********逻辑运算符********/
            //逻辑运算符组成的表达式,结果只能用bool类型来接收,非真即假
            //逻辑与(&&):运算符两边表达式同时为真的情况下,返回值为真(同真为真,一假全假)
            //逻辑与短路事件:一假即假,当运算符在左侧表达式结果为假,那么右侧表达式不再参与运算,整个结果直接为假
            //逻辑或(||):运算符两边表达式同时为假的情况下,返回值为假(同假为假,一真全真)
            //逻辑或短路事件:一真即真,当运算符左侧表达式结果为真,那么右侧表达式不再参与运算,整个结果直接为真
            //逻辑非(!):将表达式结果取反

            //逻辑与:
            bool a3 = 5 > 4; //真
            bool b3 = 3 > 6; //假
            bool result3 = (a3 && b3); //假
            Console.WriteLine(result3);

            //短路事件
            int a4 = 3;
            int b4 = 4;
            bool result4 = (a4 > b4 && (++a4 == b4));
            Console.WriteLine(result4);
            Console.WriteLine(a4);

            //逻辑或:
            bool a5 = 5 > 4; //真
            bool b5 = 3 > 6; //假
            bool result5 = (a5 || b5); //真
            Console.WriteLine(result5);

            //短路事件
            int a6 = 3, b6 = 4;
            bool result6 = (a6 < b6 || (++a6 == b6));
            Console.WriteLine(result6);
            Console.WriteLine(a6);
            Console.ReadLine();

            //逻辑非
            bool a7 = 5 > 4; //真 true
            Console.WriteLine(!a7); //假 false


            /*********分支结构*********/
            //程序的三种结构:
            //顺序结构:顺序执行,从上到下,从左到右依次执行
            //分支结构:通过一个判断,在两个可选的语序序列之间,选择一个执行
            //循环结构:在满足某个特定的条件,反复的执行一个语句序列

            //if语句
            /*
             if(条件表达式)
             {
                语句a;
             }
             如果条件表达式结果为真,那么执行语句a
             */

            if (false)
            {
                Console.WriteLine("你成功地打印出该语句");
            }

            bool resultx = 5 > 3; //true 真
            if (resultx)
            {
                Console.WriteLine("你成功地打印出该语句");
            }

            //练习:输入两个整数,判断它们的大小,并输出结果
            int ax = int.Parse(Console.ReadLine());
            int bx = int.Parse(Console.ReadLine());
            if (ax > bx)
            {
                Console.WriteLine("ax >bx");
            }
            if (ax < bx)
            {
                Console.WriteLine("ax < bx");
            }

            //练习:从控制台输入,如果是m则输出男
            char c = char.Parse(Console.ReadLine());
            if (c == 'm')
            {
                Console.WriteLine("男");
            }

            /*
             if语句第二种形式

             if(条件表达式)
             {
                语句1;
             }
             else
             {
                语句2;
             }

            如果条件表达式为真,执行语句1,否则执行语句2
             */

            bool resultn = true;
            if (resultn)
            {
                Console.WriteLine("真的情况下打印该语句");
            }
            else
            {
                Console.WriteLine("假的情况下打印该语句");
            }

            //练习:输入两个不一样的整数,打印出较大的数
            int num1 = int.Parse(Console.ReadLine());
            int num2 = int.Parse(Console.ReadLine());
            if(num1 > num2)
            {
                Console.WriteLine("num1 = {0} , num1 > num2", num1);
            }
            else
            {
                Console.WriteLine("num2 = {0} , num2 > num1", num2);
            }

            //练习:输入一个字母,如果是m打印男,否则打印女
            char gender = char.Parse(Console.ReadLine());
            if (gender == 'm')
            {
                Console.WriteLine("男");
            }
            else
            {
                Console.WriteLine("女");
            }

            /*
             if语句的第三种形式
             if(条件表达式1)
             {
                语句1;
             }
             else if(条件表达式2)
             {
                语句2;
             }
             else
             {
                语句3;
             }
             如果条件表达式1为真,则执行语句1,条件表达式2为真,则执行语句2,否则执行语句3
             注:else if最多不超过3个
             */

            //输入一个整数,判断该年是否是润年?如果是润年,则输出该年是润年,否则输出该年不是润年
            Console.WriteLine("请输入一个年份:");
            int year = int.Parse(Console.ReadLine());
            if ((a % 4 == 0 && a % 100 != 0) || a % 400 ==0)
            {
                Console.WriteLine(year + "该年是润年");
            }
            else
            {
                Console.WriteLine(year + "该年不是润年");
            }

            // 从键盘输入一个字符,如果是数字打印this is digital,如果是大写字母,打印this is capital letter,
            //如果是小写字母,打印this is letter,如果是其他字符,打印other
            Console.WriteLine("请输入一个字符:");
            char charc = char.Parse(Console.ReadLine());
            if (charc >= 'a' && charc <= 'z')
            {
                Console.WriteLine("this is letter");
            }
            else if (charc >= 'A' && charc <= 'Z')
            {
                Console.WriteLine("this is capital letter");
            }
            else if (charc < 'A' || charc > 'z' || (charc > 'Z' && charc < 'a'))
            {
                Console.WriteLine("other");
            }

            /**********条件运算符**********/
            /*
             格式:
             条件表达式1 ? 表达式1 : 表达式2;
             如果条件表达式结果为真,那么整个表达式的结果为表达式1的值
             如果条件表达式结果为假,那么整个表达式的结果为表达式2的值
             */

            //判断两个数中的最大值,并输出
            //常规写法
            int number1 = 5, number2 = 3;
            if (number1 > number2)
            {
                Console.WriteLine(number1);
            }
            else
            {
                Console.WriteLine(number2);
            }
            //或者
            int number3;
            number3 = (number1 > number2) ? number1 : number2;
            Console.WriteLine(number3);

            //判断3个数中最大的值
            //常规写法
            int numb1 = int.Parse(Console.ReadLine());
            int numb2 = int.Parse(Console.ReadLine());
            int numb3 = int.Parse(Console.ReadLine());
            if (numb1 > numb2 && numb1 > numb3)
            {
                Console.WriteLine("max number is {0}", numb1);
            }
            else if (numb2 > numb3 && numb2 > numb1)
            {
                Console.WriteLine("max number is {0}", numb2);
            }
            else if (numb3 > numb2 && numb3 > numb1)
            {
                Console.WriteLine("max number is {0}", numb3);
            }

            //或者
            int max = (numb1 > numb2 ? numb1 : numb2) > numb3 ? (numb1 > numb2 ? numb1 : numb2) : numb3;
            Console.WriteLine(max);

            /***********switch 语句**********/
            /*
             格式:
             switch(表达式){
             case 值1:{语句1; break;}
             case 值2:{语句2; break;}
             . . . . . .
             case 值n:{语句n; break;}
             default:{语句n + 1; break;}
             }

            break:用在switch case之间,接收某个case后,跳出执行switch外的语句
            当表达式的值满足值1,执行语句1。满足值2,执行语句2。否则执行语句n
            case后面可以跟常量或者常量表达式,不能跟变量
            throw:将break替换成throw之后,就可以一直往下执行
             */

            //练习:从控制台输入1 - 7,分别打印对应的星期几
            Console.WriteLine("请输入一个1到7的数字");
            int day = int.Parse(Console.ReadLine());
            switch (day)
            {
                case 1: { Console.WriteLine("星期一,上班"); break; }

                case 2: { Console.WriteLine("星期二,上班"); break; }

                case 3: { Console.WriteLine("星期三,上班"); break; }

                case 4: { Console.WriteLine("星期四,上班"); break; }

                case 5: { Console.WriteLine("星期五,上班"); break; }

                case 6: { Console.WriteLine("星期六,加班"); break; }

                case 7: { Console.WriteLine("星期天,加班"); break; }

                default: { Console.WriteLine("输入错误"); break;}
            }

            //从控制台输入一个运算符,根据输入的结果打印出相应的值
            int an = 8, bn = 5;
            Console.WriteLine("请输入一个运算符:");
            char aly = char.Parse(Console.ReadLine());
            switch(aly)
            {
                case '+': {Console.WriteLine(an + bn); break; }

                case '-': { Console.WriteLine(an + bn); break; }

                case '*': { Console.WriteLine(an + bn); break; }

                case '/': { Console.WriteLine(an + bn); break; }

                case '%': { Console.WriteLine(an + bn); break; }

                default: { Console.WriteLine("输入错误");break; }
            }
        }
    }
}

 

你可能感兴趣的:(C#基础语法——逻辑运算符&分支结构)