C#入门——运算符

目录

前言

1.算数运算符

1.1  知识点

1.2   练习题

2. 字符串拼接

2.1   知识点

 2.2    练习题

 3.条件运算符

4.逻辑运算符

5. 位运算符

6.三目运算符

6.1   知识点

6.2   练习题


前言

视频内容来源于bilibili 唐老狮


1.算数运算符

1.1  知识点

using System;

namespace lesson10_算数运算符
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 知识点一   赋值符号
            //=
            //关键知识点:
            //先看右侧 再看左侧 把右侧的值赋给左侧的变量

            string myName = "小明";
            int myAge = 18;
            float myHeight = 182.5f;

            #endregion

            #region 知识点二   加 +
            //用自己计算 先算右侧结果 再赋值给左侧变量
            int i = 1;
            i = i + 2;
            Console.WriteLine(i);

            //连续运算 先算右侧结果 再赋值给左侧变量
            i = 1 + i + i;
            Console.WriteLine(i);

            //初始化时就运算 先算右侧结果 再赋值给左侧变量
            int i2 = 1 + 2 + 3;
            Console.WriteLine(i2);

            #endregion

            #region 知识点三   减 -
            //用自己计算 先算右侧结果 再赋值给左侧变量
            int j = 1;
            j = j - 1;
            Console.WriteLine(j);
            //连续运算 先算右侧结果 再赋值给左侧变量
            j = 1 - 2 - 3;
            Console.WriteLine(j);
            //初始化时就运算 先算右侧结果 再赋值给左侧变量
            int j2 = 3 - 2 - 1;
            Console.WriteLine(j2);

            #endregion

            #region 知识点四   乘 *
            //用自己计算 先算右侧结果 再赋值给左侧变量
            int c = 1;
            c = c * 10;
            Console.WriteLine(c);
            //连续运算 先算右侧结果 再赋值给左侧变量
            c = 1 * 2 * 3;
            Console.WriteLine(c);
            //初始化时就运算 先算右侧结果 再赋值给左侧变量
            int c2 = 1 * 2 * 3;
            Console.WriteLine(c2);
            #endregion

            #region 知识点五   除 /
            //用自己计算 先算右侧结果 再赋值给左侧变量
            int chu = 1;
            chu = 10 / 2;
            Console.WriteLine(chu);
            //连续运算 先算右侧结果 再赋值给左侧变量
            chu = 20 / 2 / 5;
            Console.WriteLine(chu);
            //初始化时就运算 先算右侧结果 再赋值给左侧变量
            int chu2 = 20 / 5 / 2;
            Console.WriteLine(chu2);

            #endregion

            #region 知识点六   取余 %
            int y = 4;
            y = y % 2;
            Console.WriteLine(y);

            y = 20;
            y = y % 5 % 3;
            Console.WriteLine(y);
            #endregion

            #region 知识点七   算术运算符的优先级
            //优先级 是指 在混合运算时的运算顺序

            //乘除取余 优先级高于 加减 先算乘除 后算加减

            //括号可以改变优先级 优先计算括号内内容

            //多组括号 先算最里层括号 依次往外算

            #endregion

            #region 知识点八   算术运算符的 复合运算符
            //固定写法
            //+= -= *= /= %=
            //复合运算符 是用于 自己=自己进行运算

            //注意:复合运算符 只能进行一种运算 不能混合运算
            //例如 i *-+=2;

            #endregion

            #region 知识点九   算术运算符的 自增减
            int a2 = 1;

            a2 = a2 + 1;
            a2 += 1;
            a2++;//先用再加
            Console.WriteLine(a2);
            ++a2;//先加再用
            Console.WriteLine(a2);

            a2 = 1;
            Console.WriteLine(a2++);// 1
            a2 = 1;
            Console.WriteLine(++a2);// 2

            #endregion
        }
    }
}

1.2   练习题

 

using System;

namespace lesson10_算数运算符练习题
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 习题1
            //定义一个变量存储你的年龄,十年后你的年龄是多少,请输出到控制台
            int age = 18;
            Console.WriteLine("10年后,你的年龄是{0}", age + 10);
            #endregion

            #region 习题2
            //计算一个半径为5的圆的面积和周长
            double r = 5;
            Console.WriteLine("面积是{0},周长是{1}", 3.14 * r * r, 2 * 3.14 * r);
            #endregion

            #region 习题3
            //计算任意三门成绩的总分,平均分,打印到控制台
            //三门成绩均为整形(C#,unity,Math)
            int c = 80, u = 90, m = 90;
            double sum, ave;
            sum = c + u + m;
            ave = sum / 3;
            Console.WriteLine("总分{0},平均分{1}", sum, ave);
            #endregion

            #region 习题4
            //商店T恤的价格为285元/件,裤子的价格为720元/条
            //小李在该店买了2件衣服和3条裤子,小李该付多少钱,打3.8折呢
            int t = 285, k = 720;
            double s, s1;
            s = 2 * t + (3 * k);
            s1 = s * 0.38;
            Console.WriteLine("小李该付{0}元,打折后需要付{1}元", s, s1);
            #endregion

            #region 习题5
            int a = 10, b = 20;
            int number1 = ++a + b;
            a = 10;
            b = 20;
            int number2 = a + b++;
            a = 10;
            b = 20;
            int number3 = a++ + ++b + a++;
            //请说明number1,number2,number3的结果
            //31,30,42
            #endregion

            #region 习题6
            //有两个数,a=99,b=87,请写出两种方法交换他们的值
            int a1 = 99, b1 = 87;
            //int c1 = a1;
            //a1 = b1;
            //b1 = c1;
            //Console.WriteLine("a={0},b={1}", a1, b1);
            //a1 = a1 + b1;
            //b1 = a1 - b1;
            //a1 = a1 - b1;
            //Console.WriteLine("a={0},b={1}", a1, b1);
            #endregion

            #region 习题7
            //请把987652秒通过代码转成n天n小时n分n秒显示在控制台上
            int time = 987652;
            //60*60*24
            int day1 = 60 * 60 * 24;
            int hour1 = 60 * 60;
            int min1 = 60;
            int day = time / day1;
            int hour = time % day1 / hour1;
            int min = time % hour1 / min1;
            int miao = time % min1;
            Console.WriteLine("{0}天{1}时{2}分{3}秒", day, hour, min, miao);

            #endregion
        }
    }
}

2. 字符串拼接

2.1   知识点

using System;

namespace lesson11_字符串拼接
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("字符串拼接");
            #region 字符串拼接方式一
            //之前的算术运算符 只是用来数值类型变量进行数学运算的
            //而 string 不存在算术运算符不能计算 但是可以通过+号来进行字符串拼接
            string str = "123";
            //用+号进行字符串拼接
            str = str + "456";
            Console.WriteLine(str);

            str = str + 1;
            Console.WriteLine(str);

            //复合运算符 +=
            str = "123";
            str += "1" + 4 + true;
            Console.WriteLine(str);//12314True

            str += 1 + 2 + 3 + 4;
            Console.WriteLine(str);//12314True10

            str += "" + 1 + 2 + 3 + 4;
            Console.WriteLine(str);//12314True101234

            str = "";
            str += 1 + 2 + "" + 3 + 4;
            Console.WriteLine(str);//334

            str = "";
            str += 1 + 2 + "" + (3 + 4);
            Console.WriteLine(str);//37

            //注意:用+号拼接 是用符号唯一方法 不能用-*/%...

            #endregion

            #region 字符串拼接方式二
            //固定语法
            //string.Format("待拼接的内容",内容1,内容2....);
            //拼接内容中的固定规则
            //想要被拼接的内容用占位符替代{数字} 数字:0到n  依次往后
            string str2 = string.Format("我是{0},我今年{1}岁,我想要{2}", "小明", "21", "好好学习,天天向上!");
            Console.WriteLine(str2);

            str2 = string.Format("{0}{1}{2}", 1, true, false);
            Console.WriteLine(str2);

            #endregion

            #region 控制台打印拼接
            Console.WriteLine("A{0}B{1}C{2}", 1, true, false);
            //内容比占位符多没事,比占位符少会报错
            #endregion
        }
    }
}

 2.2    练习题

using System;

namespace lesson11_字符串拼接练习题
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 习题1
            //定义一个变量存储客户的姓名,然后在屏幕上显示:“你好,XXX”
            //XXX代表客户的姓名
            string name = "小明";
            Console.WriteLine("你好,{0}", name);
            #endregion

            #region 习题2
            //定义两个变量,一个存储客户的姓名,另一个存储年龄,
            //然后在屏幕上显示:“XXX+YYY岁了”。XXX代表客户的姓名,yyy代表年龄
            //举例:唐老师18岁了
            string name1 = "小明";
            int age1 = 18;
            Console.WriteLine("{0}{1}岁了", name1, age1);
            #endregion

            Console.WriteLine();

            #region 习题3
            //当我们去面试时,前台会要求我们填一张表格,有姓名,年龄,邮箱,家庭住址,期望薪资,请把这些信息在控制台输出
            string name2 = "小明";
            int age = 18;
            string str = "[email protected]";
            string add = "中国";
            int money = 1000;
            Console.WriteLine("姓名:{0}", name2);
            Console.WriteLine("年龄:{0}", age);
            Console.WriteLine("邮箱:{0}", str);
            Console.WriteLine("家庭住址:{0}", add);
            Console.WriteLine("期望薪资:{0}", money);
            #endregion

            #region 习题4
            //请用户输入用户名,年龄,班级,最后一起用到占位符形式打印出来
            Console.WriteLine("输入用户名:");
            string name4 = Console.ReadLine();
            Console.WriteLine("输入年龄:");
            string age4 = Console.ReadLine();
            Console.WriteLine("输入班级:");
            string class4 = Console.ReadLine();
            Console.WriteLine("{0},{1},{2}", name4, age4, class4);
            #endregion
        }
    }
}

 3.条件运算符

using System;

namespace lesson12_条件运算符
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("条件运算符");
            #region 知识点一   条件运算符
            //作用:用于比较两个变量或常量
            //是否大于 >
            //是否小于 <
            //是否等于 ==
            //是否不等于 !=
            //是否大于等于 >=
            //是否小于等于 <=

            //条件运算符 一定存在左右两边的内容
            //左边内容 条件运算符 右边内容
            int a = 5;
            int b = 10;
            //条件运算符 不能直接这么用
            //纯比较不用结果 那么对于我们来说 没有任何的意义
            //a>b;
            //比较的结果 返回的是一个 bool 类型的值
            //true 和 false 如果比较的条件满足 那就返回 true 不满足 就返回 false
            //先算右边 再赋值给左边
            bool result = a > b;
            Console.WriteLine(result);

            result = a < b;
            Console.WriteLine(result);

            result = a >= b;
            Console.WriteLine(result);

            result = a <= b;
            Console.WriteLine(result);

            result = a == b;
            Console.WriteLine(result);

            result = a != b;
            Console.WriteLine(result);

            #endregion

            #region 知识点二    各种应用写法
            //变量和变量比较
            a = 5;
            b = 10;
            result = a < b;
            //变量和数值(常量)比较
            result = a < 10;
            //数值和数值比较
            result = 5 < 10;
            result = a == b;
            result = a != b;
            //计算结果比较
            //条件运算符 优先级 低于算术运算符
            result = a + 3 > a - 2 + 3;

            #endregion

            #region 知识点三   不能进行范围比较
            a = 5;
            //判断是否在某两个值之间
            //1 123;
            result = c > 'B';
            #endregion
        }
    }
}

4.逻辑运算符

using System;

namespace lesson13_逻辑运算符
{
    class Program
    {
        static void Main(string[] args)
        {
            //对bool类型 进行逻辑运算

            #region 知识点一    逻辑与
            //符号 &&
            //规则  对两个bool值进行逻辑运算 有假则假   同真为真
            bool res = true && false;    //false
            bool res1 = true && true;     //true

            //bool相关的类型 bool变量  条件运算符
            //逻辑运算符优先级 低于 条件运算符 算数运算符
            res = 3 > 1 && 1 < 2;      //true

            int i = 3;
            res = i > 1 && i < 5;

            //多个逻辑与 组合运用
            int i2 = 5;
            res = i2 > 1 && i2 < 5 && i > 1 && i < 5;      //false
            #endregion

            #region 知识点二     逻辑或
            //符号 ||
            //规则  对两个bool值进行逻辑运算 有真则真   同假为假
            res = true || false;    //true
            res = false || false;   //false

            //true || false
            res = 3 > 10 && 3 < 5;       //true
            #endregion

            #region 知识点三    逻辑非
            //符号  !
            //规则 对两个bool值进行取反  真变假 假变真
            //逻辑非的 优先级  较高
            res = !(3 > 2);  //false
            #endregion

            #region 知识点四     混合使用优先级问题
            //规则  !(逻辑非)优先级最高 &&(逻辑与)优先级高于 ||(逻辑或)
            //逻辑运算符优先级低于 算数运算符  条件运算符
            #endregion

            #region 知识点五    逻辑运算符短路规则
            int i3 = 1;

            //   || 有真则真
            //只要逻辑与或者逻辑或 左边满足了条件
            //i3 > 0  true
            //只要 满足条件 右边的内容 对于我们来说 已经不重要了
            res = i3 > 0 || ++i3 >= 1;

            //false && i3++ > 1     抛弃后面不去计算
            res = i3 < 0 && ++i3 > 1;

            #endregion
        }
    }
}

5. 位运算符

using System;

namespace lesson14_位运算符
{
    class Program
    {
        static void Main(string[] args)
        {
            //位运算符 主要用于数值类型进行计算的
            //将数值转换为2进制 再进行位运算
            #region 位与 &
            //规则 连接两个数值进行位运算 将数值转换为2进制
            //对位运算 有0则0
            int a = 1;//1
            int b = 5;//101
            // 001
            //&101
            // 001=1
            int c = a & b;
            Console.WriteLine(c);//1

            a = 3;    //00011
            b = 19;   //10011
            c = a & b;//00011=3
            Console.WriteLine(c);//3


            #endregion

            #region 位或 |
            //规则 连接两个数值进行位运算 将数值转换为2进制
            //对位运算 有1则1
            int a2 = 1;//1
            int b2 = 5;//101
            //   001
            // | 101
            //   101=5
            int c2 = a2 | b2;
            Console.WriteLine(c2);//5

            a2 = 3;       //   00011
            b2 = 19;      // | 10011
            c2 = a2 | b2; //   10011=19
            Console.WriteLine(c2);//19

            #endregion

            #region 异或 ^
            //规则 连接两个数值进行位运算 将数值转换为2进制
            //对位运算 相同为0 不同为1
            int a3 = 1;//1
            int b3 = 5;//101
            //   001
            // ^ 101
            //   100=4
            int c3 = a3 ^ b3;
            Console.WriteLine(c3);//4

            a3 = 3;       //   00011
            b3 = 19;      // ^ 10011
            c3 = a3 ^ b3; //   10000=16
            Console.WriteLine(c3);//16

            #endregion

            #region 位取反 ~
            //规则 连接两个数值进行位运算 将数值转换为2进制
            //对位运算 0变1 1变0
            int a4 = 5;
            //  0000 0000 0000 0000 0000 0000 0000 0101
            // ~1111 1111 1111 1111 1111 1111 1111 1010
            // 反码补码知识
            int c4 = ~a4;
            Console.WriteLine(c4);//-6

            #endregion

            #region 左移<< 和 右移 >>
            //规则 让一个数的2进制进行左移和右移
            //左移几位 右侧加几个0
            a = 5;//101
            c = a << 5;//10100000=160
            Console.WriteLine(c);//160

            //右移几位 右侧去掉几个数
            a = 5;//101
            c = a >> 2;//1
            Console.WriteLine(c);//1
 
            #endregion
        }
    }
}

6.三目运算符

6.1   知识点

using System;

namespace lesson15_三目运算符
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 基本语法
            //套路 3个空位 2个符号!!!
            //固定语法 空位     ? 空位                 :空位;
            //关键信息 bool类型 ? bool类型为真返回内容 :bool内容为假返回内容;
            //三目运算符 会有返回值,这个返回值类型必须一致,并且必须使用!

            #endregion

            #region 具体使用

            string str = true ? "条件为真" : "条件为假";
            Console.WriteLine(str);
            string str2 = false ? "条件为真" : "条件为假";
            Console.WriteLine(str2);

            int a = 5;
            str = a < 1 ? "条件为真" : "条件为假";
            Console.WriteLine(str);

            //第一个空位 始终是结果为bool类型的表达式 bool变量 条件表达式 逻辑运算符表达式
            //第二三个空位 什么表达式都可以 只要保证他们的结果类型是一致的

            //int i1 = a > 1 ? 123 : 423;
            //bool b = a ? a > 6 : !false;
            #endregion
        }
    }
}

6.2   练习题

using System;

namespace lesson15_三目运算符练习题
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 习题1
            //比较两个数的大小,求出最大的
            int str = 5 > 6 ? 5 : 6;
            Console.WriteLine(str);
            #endregion

            #region 习题2
            //提示用户输入一个姓名,然后在控制台输出姓名,只要输入的不是帅哥,就显示美女
            Console.Write("输入姓名:");
            string name0 = Console.ReadLine();
            string m = name0 == "帅哥" ? "帅哥" : "美女";
            Console.WriteLine(m);
            #endregion

            #region 习题3
            //依次输入学生的姓名,C#的成绩,unity的成绩,两门成绩都大于90,才能毕业,输出最后的结果
            Console.WriteLine("姓名:");
            string name = Console.ReadLine();

            Console.WriteLine("C#成绩:");
            int c = int.Parse(Console.ReadLine());

            Console.WriteLine("unity成绩:");
            int u = int.Parse(Console.ReadLine());

            string m1 = (c > 90 && u > 90) ? "毕业" : "不能毕业";
            Console.WriteLine("{0},{1}", name, m1);
            #endregion

            #region 习题4
            //要求用户输入一个年份,然后判断是不是闰年
            //闰年判断条件:
            //能被400整除(2000)
            //或者能被4整除,但不能被100整除(2008)
            Console.WriteLine("输入年份:");
            int year = int.Parse(Console.ReadLine());
            if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
            {
                Console.WriteLine("{0}是闰年", year);
            }
            else
            {
                Console.WriteLine("{0}不是闰年", year);
            }
            #endregion
        }
    }
}

你可能感兴趣的:(unity之C#入门,c#)