C#运算符和选择语句

发布于:2022-10-16 ⋅ 阅读:(380) ⋅ 点赞:(0)

上一章为C#中的变量和输出数据  这一章为C#运算符和选择语句
using System;

namespace a
{
    class b
    {
        static void Main()
        {

            //      赋值运算符
            int m=20; //赋值
            m+=30; // =50  因为m已赋值 所以+=的意思为加等于号后面的数30
            m*=3;  // =150  代码是根据从前往后运行所以是根据上面的数值再乘3  累加形式
            //  += -= *= /=  %=这个是求余数  用法都一致   
            
            //      算术运算符
            int m=3,n=2;
            int s=m+n;  // 用于 “相加”                                    
            string str="你好"+"小明"+C;     //+对字符串用于连接也是可以的
            string s1=m+""; //由于是字符串 所以加号的作用为 “连接”

            int d=-100;  //负数
            int e=d-200;  //减法
            Console.WriteLine("e={0}",e);   //输出为 -300

            int f=a*b*c  //乘法
            Console.WriteLine("f={0}",f);

            int g=a/b;      //除法:两个整数相除,结果为整数!!!
            Console.WriteLine("g={0}",g);
            //如果想要得到小数结果把其中一个数变成浮点型

            int xj=m/n;  //两个整数相除只能得到整数 这里用浮点型也不行。
            Console.WriteLine(xj); // 求出的结果为整数
            double xj=(double)m/n; // 如果非要除出小数 得用强制转换 转换一个赋值得数为小数就能求出小数。或者在赋值上变成3.0
            //或 double xj=m/2.0;

            double j=a/0.0;  //除数不能为整数0,但是可以用小数的0.0
            Console.WriteLine("j={0}",j);   结果为:无限大
            
            int x=a%b;
            Console.WriteLine("x={0}",x);  

            double y=7.5%3.5;
            Console.WriteLine("y={0}",y); //求余数算法时,结果必须是整数

            double ys=10.5%2;
            Console.WriteLine(ys);   //  0.5

            int m=3,n;

            // ++ 本身加一 -- 本身减一  //有两种写法
            // m++ 前缀写法
            // ++m 后缀写法
            // 前缀写法优先级很高,后缀写法优先级很低。
            //列;  n=m++;    n则等于3 m则等于4 因为优先给了n=m m则是m++所以是4
            //n=++m  n=4 m=4  因为++m等于4 n=m 所以n也等于4

            int a=10;
            a++;  //++ 自增1  相当于  a=a+1 a+=1     前缀写法
            Console.WriteLine("a={0}",a); //结果为a=11

            ++a;  //++ 自增1  后缀写法   
            Console.WriteLine("a={0}",a);  //输出结果为a=11
            //前后缀 优先级不同
            int a=10;
            int b=a++;  //先算= 再算后缀++   
            Console.WriteLine("a={0}b={1}",a,b);  //a=11 b=10

            int b=++a;  //先前缀 再算=
            Console.WriteLine("a={0}b={1}",a,b);  //a=11 b=11
            //说明前缀和后缀的区别在于:运算优先级不同 前缀优先级比较高 后缀优先级低
            //(a++); ()不影响后缀优先级  
            // ++ -- 用法相同

            运算符和流程分支结构
              1.常见运算符;
                赋值;=(赋值)、+=、-=、....
                算数:+、-、*、/、%、++、--
                关系;>、>=、<、<=、==(等于)、!=、
                eg:
                int a=10,b=20;
                
                Console.WriteLine("{0}",a>b); //false

                bool c=a<b;   //保存关系表达式的结果
                Console.WriteLine("{0}",c); //true

                Console.WriteLine("{0}",a>=b); //false
                Console.WriteLine("{0}",a<=b); //true
                Console.WriteLine("{0}",a==b); //false
                Console.WriteLine("{0}",a!=b); //true

                
                逻辑;  &&(与)  ||(或)  !(非)   

                        A&&B:如果a和b同时成立,整个表达式结果为true 有一个不成立为false // 如果a不成立b则不需要计算(短路运算特点)
                        与运算用于多个条件同时满足时,多个条件就用&&连接!
                    eg:
                        int a=10;
                        Console.WriteLine("{0}",a>0&&a<100); //结果为true
                        Console.WriteLine("{0}",a<0&&a<100); //结果为false

                        || 或运算 表示“或者”的意思  //多个满足一个就行 
                        a||b :a和b只要有一个成立,整个表达式结果是true // a和b都不成立,整个表达式结果是false
                               如果a成立b则不需要计算(短路运算特点) 在多条件满足一个时,多个条件就用||连接!
                                   
                        !:非运算 表示“不是”的意思  “真为假 假为真”
                                  (!(a)) 如果成立 结果为flase 如果不成立 结果为true
                    eg:判断成绩要大于等于60
                        条件写法;s>=60
                                  !(s<60)
                                   这两个写法是一样的。

                  运算符的优先级;
                                 算术>关系>逻辑>赋值

                                  有一些比较特殊的
                                      1)前缀优先级高,后缀很低。
                                      2)!优先级很高

                  关系和逻辑表达式常作为判断条件,比如:
                      判断一个整数a是偶数的条件:  a%2==0
                      判断一个整数a是否在0-100之间的条件:a>=0 && a<=100
                      判断一个整数a是否小于1或大于12的条件:a<1 || a>12
                      判断一个字符c是否是字母的条件:  c>='a' && c<='z' || c>='A' && c<='Z';

    
              2.流程分支结构;
                1)if结构;有三种写法;

                    a、形式一;
                        if(条件表达式)
                        {
                            条件成立时,要执行的操作
                        }

                条件表达式;一般可以是关系表达式或逻辑表达式。
               eg;
                    int a=100,b=20;
                    
                    if(a>b)  //如果a大于b
                    {
                        Console.WriteLine("a的值大于b的值!");  //条件成立才会输出
                    }

               eg2;
                        Console.WriteLine("输入考试成绩");
                        int a=int.Parse(Console.ReadLine());
                        //如果成绩低于60,给你加上五分。
                        if(a=<60)  
                        {
                            a+=5;
                            Console.WriteLine("加分后成绩为:{0}",a);
                        }
                            Console.WriteLine("您的成绩为:{0}",a); //如果上面不成立则会输出两个结果

                   b、形式二;  //一般用于二选一的操作  判断效率低(判断多个哪怕判断一个成立时其他也会接着判断)

                      if (条件表达式)
                      {
                          条件成立时,要执行的操作;
                      }

                      else ()
                      {
                          条件不成立时,要执行的操作;
                      }

                      eg;
                          int a=100,b=50;
                            if (a>b)  //判断
                            {
                                条件成立则会输出; //输出
                            }
                            else  //不满足if
                            {
                                //  条件不满足时则会输出
                            }

                  c、形式三;  //常用于三种以上的情况    //执行效率高当判断一个成立时就会放弃其他判断
                        
                     if (条件表达式1)
                     {
                         当条件1成立时,执行的操作;
                     }
                     else if (条件表达式2)
                     {
                         当条件2成立时,要执行的操作;  //可加多个else if
                     }

             if语句中可以相互嵌套,就是if语句里可以再出现if语句,比如://输入性别年龄判断是否达到法律结婚年龄
                 if (a=="男")
                 {
                    if (b>=22)
                    {
                        Console.WriteLine("达到");
                    }

                    else
                    {
                        Console.WriteLine("没达到");
                    }
                 }

                 else (a=="女")
                 {
                     if (b>=20)
                     {
                         Console.WriteLine("达到");
                     }
                     
                     else
                     {
                         Console.WreteLine("没有达到");
                     }
                 }

             条件运算符?: (三目运算符)//三个操作数的意思  (++\--\! 是单目运算符 其他大多数是双目运算符)
                 条件表达式写法:
                        条件?表达式1:表达式2  //注意!!!一般来说:表达式1和2的类型应当保持一致

                 运算规则:
                        如果条件成立,表达式1就是整个式子的结果。
                        如果条件不成立,表达式2就是整个式子的结果。

                    eg:
                    int a=10,b=20,c=30;
                    Console.WriteLine("{0}",a>b?100:200); //a>b 不成立所以结果是200
                    Console.WriteLine("{0}",a<b?100:200); //a<b 成立所以结果是100

                    1>2?1:2 ---->结果是2

                    ?:也可以嵌套
                    a>b?a:(b>c?b:c) //结果为c

                     
                    eg:
                        //求两个数的最大值
                        //输入两个数为a,b。
                        int c=a>=b?a:b;
                        Console.WriteLine("这两个数{0}大",c);

                   eg:
                       string ch=a=="男"?"先生":"女士";
                       Console.WriteLine("您的称呼是{0}",ch);

                   switch:第二种流程分支语句。 用于等值判断!!!
                       写法:
                       switch (表达式)
                       {
                            case 常量表达式:处理语句;break;        //相当于if成立之后执行的
                            case 常量表达式:处理语句;break;
                            .....
                            default:处理语句;break;
、                     }  

                       说明:
                           1)表达式一般是int、char、tring等类型的式子;
                           2) 表达式就是判断对象;
                           3) 常量表达式,一般就是具体的某个数据。
                             (表示要的表达式可能等于的值)
                             (多个case语句后的常量不能出现重复)
                               常量的类型要跟判断的表达式类型一致!
                           4) break表示跳出switch (表示结束)
                           5) 一个case语句就是只有一种可能的情形;
                           6) default语句是可以选的;如果有,只能有一个default语句,
                              default语句在所有的case都不满足时候执行,相当于if结构中的else部分。
                           7)case和default可以调整先后顺序。

                       eg:
                           //输入姓名变量为a       判断男女还是输入错误
                           switch (a)  //a变量就是判断对象
                           {
                           case "男":Console.WriteLine("先生!");break;
                           case "女":Console.WriteLine("女士!");break;
                           default:Console.WriteLine("输入错误!");break;
                           }

                           //输入0-6代表周日到周六   输入一个变量保存为a  //用if会很麻烦且长
                           switch (a)
                           {
                                case 0:Console.WriteLine("星期日");break;
                                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;
                                default:Console.WriteLine("输入错误!");break;
                           }
                           
                           //输入一个月份求出一个月有多少天 输入月份定义变量为a
                           switch (a)
                           {
                               //多个case属于同一种情形,进行相同处理时,可以只写一次处理语句
                               //省略break 会自动执行下一个case后的语句,直到遇到break才会跳出。
                               case 1:
                               case 3:
                               case 5:
                               case 7:
                               case 8:  
                               case 10:
                               case 12:Console.WriteLine("31");break;
                               case 4:
                               case 6:
                               case 9:
                               case 11:Console.WriteLine("30");break;
                               case 2:Console.WriteLine("28");break;
                               default:Console.WriteLine("输入月份错误!");break;
                           }

                           //if和witch可以进行相互嵌套:

                                switch ()
                                {
                                    case xx:
                                            if ()
                                            {
                                            }
                                            break;
                                }

                                if ()
                                {
                                    switch ()
                                    {
                                        ......
                                    }
                                }
                                else
                                {
                                    switch ()
                                    {
                                        .......
                                    }
                                }

                       eg:
                         //输入一个月份求出一个月有多少天并且考虑闰年 输入月份定义变量为a年份为b
                          if (a>=1&&a<=12) //可以进行嵌套
                          {
                           switch (a)
                           {
                               case 1:
                               case 3:
                               case 5:
                               case 7:
                               case 8:  
                               case 10:
                               case 12:Console.WriteLine("31");break;
                               case 4:
                               case 6:
                               case 9:
                               case 11:Console.WriteLine("30");break;
                               case 2:
                                      //判断年份是不是闰年
                                    if (year%4==0&&year%100!=0||year%400==0)
                                    {
                                        Console.WriteLine("29");
                                    }
                                    else
                                    {
                                        Console.WriteLine("28");
                                    }
                                    break;
                           }
                          }
                          else
                          {
                              Console.WriteLine("输入错误");
                          }

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到