C#入门(28 - 39) 运算符

本文详细介绍了C#中的运算符,包括算术运算符如加减乘除,字符串拼接,条件运算符,逻辑运算符,位运算符和三目运算符的用法,并通过实例解析了它们的优先级和短路规则。

目录

算术运算符

字符串拼接

条件运算符

逻辑运算符

位运算符

三目运算符


混合使用优先级:

规则  :
            //  逻辑非  >  算术运算符 >  条件运算符  >  逻辑运算符优先级

一、算术运算符

加减乘除 取余   + - * /  %  

优先级  乘  除 取余  >   加减

复合运算符  +=  -=   %=   /=   *=

用于自己和自己计算

int i2 = 2;
            i2 *= 4;   //  i2 = i2 * 4;

            i2 += 5;  //  i2 = i2 +5

例子:

int k = 987652; //转换成天、时、分、秒

            int OneDay = 60 * 60 * 24;
            int OneHour = 60 * 60;
            int OneMins = 60;

            int day = 987652 / OneDay;
            int hour = 987652 % OneDay / OneHour;
            int Min = 987652 % OneHour / OneMins;
            int s = 987652 % 60;

            Console.WriteLine("987652秒是"+day +"天"+hour+"时"+Min+"分"+s+"秒。");

二、字符串拼接

方式1:  +  和  +=     

str = "123";
            str += "1" + 4 + true;
            Console.WriteLine(str);

// 使用 += 时,用算术运算符计算还是用 + 号拼接,要看第一个计算的是什么。

str += "" + 1 + 2 + 3;  (用+的形式拼接)输出为 1 2 3

str += 1 + 2 + "" + 3; (用算术运算符的形式拼接)  输出为  3   3

方式2:string.Format

语法:
            //string.Format("待拼接的内容",内容1,内容2,。。。。)

规则:
            //想要被拼接的内容用占位符替代 {数字} 数字:0~n 依次往后

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

注意:使用了多少个占位符就必须要有多少个内容,内容数 >=  占位符数。

控制台打印

Console.WriteLIne();   用法和  string.Format 一样

三、条件运算符

用于比较两个变量或者常量

>    <    ==    !=    >=    <=

大于小于    是否等于不等于     是否小于等于大于等于

//条件运算符  语法
            // 左边的内容  条件运算符  右边的内容

            //比较所返回的  结果  是一个  bool值  成立则为true  不满足为false

            //纯粹比较  但结果必须被使用起来

 

(1)写法

变量和变量比   变量和常量比   

数值和数值比较(一般较少出现)

Result = 9 > 5; //true
            Result = 4 > 5;    //False

计算结果比较
            Result = a + 3 > a - 2 + 3;// 条件运算符  优先级低于  算数运算符
                                       //先计算 再比较  Result = 13 > 11  true

(2)不能进行范围比较     

//判断是否在两个值之间
            // 1 < a <10           不能连着用
            //在C# 都不能这么写
            // Result = 1 < a < 10
            //要判断 一个变量是否存在两个数之间  要结合  逻辑运算符

(3)不同类型之间的比较

 //>=小于  或者  等于 只需要满足一个条件就好 ,就会输出 true

四、逻辑运算符

对 bool 类型 进行逻辑运算

(1)逻辑与

  符号 &&(并且)
            //规则 对两个 bool 值进行逻辑运算  有假则假  同真为真

 bool result = true && false;
            Console.WriteLine(result);   输出false.

逻辑运算符  优先级 低于 条件运算符 和算数运算符

            result = 3 > 1 && 1 < 2;

            int i = 3;
            result = i > 1 && i < 5;   // 逻辑运算符  范围判断  是否在 1和5 之间
            Console.WriteLine(result);
 

多个逻辑 与 组合应用

            int i2 = 5;
            //从左到右依次看  true && false   true     false
            result = i2 > 1 && i2 < 5 && i > 1 && i < 5;
            Console.WriteLine(result);

(2)逻辑或

//符号 || 或者
            //规则 对两个 bool值进行逻辑运算  有真则真  同假为假

  result = true || false;
            Console.WriteLine(result);  输出true。

(3)逻辑非

符号  !
            //对一个 bool 值进行取反 真变假 假变真

  result =!true;
            Console.WriteLine(result);   输出为false。

result = ! (3 > 2);  //逻辑非的优先级  大于条件运算符  连着一起必须加括号

(4)混合使用优先级问题

//规则  !(逻辑非)优先级最高  &&(逻辑与)优先级高于||(逻辑或)
            //逻辑运算符优先级  低于 算术运算符  条件运算符(逻辑非除外)

bool gameOver = false;
            int hp = 100;
            bool isDead = false;
            bool isMustOver = true;

            result = gameOver || hp < 0 && !isDead || isMustOver;
            Console.WriteLine(result);

(5)逻辑运算符的短路规则

i = 1;
             || 有真则真 

            //短路  只要逻辑与&& 逻辑或|| 左边满足条件后,后面的就不再计算了

            //i>0 true        ++1后的部分不再计算
            result = i > 0 || ++i >= 1;
            Console.WriteLine(i);

五、位运算符

//位运算符 主要用数值类型进行计算 
 //将数值转化为2进制 再进行位运算

(1)位与  &

//规则  连接两个数值进行位计算  将数值转为2进制
 //对位运算  有0则0

            int a = 1, b = 5;//001 和 101
            int c =a & b;   //001
            Console.WriteLine(c);  // 1

   //  001   上下对位
            //& 101
            //算出来就是 001

(2) 位或 |   

//有1则1

(3)异或

//^为符号
            //规则  相同为0 不同为1

(4)位取反

 //规则  对位运算 0变1 1变0  取反
            //与前面不同的是 取反需要把 用来运算的变量类型有多少位都全表示出来。。。
            //反码补码

(5)左移 >>   右移  <<

六、三目运算符

//3个空位 2个符号
            //语法:空位     ?空位             :空位;
            //关键信息:bool类型?bool类型为真返回内容 : bool类型为假返回内容;
            //三目运算符 会有返回值 ,这个返回值类型必须一致,且必须使用。

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

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

            int y = 5;
            b = y < 1 ? "a>1" : "a不满足条件";
            Console.WriteLine(b);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值