C#语法知识之运算符

3、运算符

目录

1、算数运算符

1、赋值符号

c 复制代码
=
//把右侧的值赋给左侧的变量

2、算数运算符

c 复制代码
+
_
*
/	float f = 1 / 2f;
%

3、算数运算符的优先级

c 复制代码
//乘除余优先级高于加减
括号可以改变优先级,优先计算括号内的内容

4、算数运算符的复合运算

c 复制代码
复合运算符是用于自己 = 自己进行运算
+=	int i = 1; i += 1;  // i = i+1 ;
-=
*=
/=
%=

5、算数运算符的自增减

c 复制代码
//自增运算符	++
int i =1; 
i++;	//先用再加	Console.WriteLine(i++);	//1
++i;	//先加再用	Console.WriteLien(++i);	//3
//自减运算符 --
思考 秒转化时间

​ 将987654秒转化为n天n小时n分钟n秒?

c 复制代码
 //一天对应的秒数 = 24小时 * 60分钟 *60秒
	int oneDayS = 24*60*60;
//一小时对应秒数 = 60分钟 * 60秒
	int oneHourS = 60*60;
//一分钟对应的秒数 = 60秒
	int oneMinS = 60;
	int second = 987654;
//天数 用总的秒数 / 一天所用秒数
	int day = second / oneDayS;
//小时数 用不足一天的秒 / 一小时对应的秒数
	int hour = second % oneDayS /oneHourS;
//分钟数 用不足一小时的秒 / 一分钟对应的秒数
	int minute = second % oneHourS / oneMinS;
	int sec = second % oneMinS;
	Console.Write(day+"天"+hour+"小时"+minute+"分钟"+sec+"秒");

2、字符串拼接

c 复制代码
1、字符串拼接方式1	//通过+进行拼接,也可以复合运算+=
    string str = "1"; str = str + "1";  //11
	str += "2" + true;     //112true
	str += 1+2+3+4;		//112true10
	str += 1+2 +""+3+4;	//112true10334
2、字符串拼接方式2	//string.Format("{内容1,...}",内容1,...);
    string str = string.Format("{0},{1},{2}","",22,true);
	非字符串格式会自动调用ToString方法进行占位符的拼接
3、控制台打印拼接	WriteLien会自动调用Format方法
    Console.WriteLine("{0},{1},{2}","",22,true)

3、条件运算符

1、条件运算符概念

c 复制代码
//比较两个变量或常量,比较结果返回bool类型的值
	>	//是否大于
        int a = 5; int b = 20;	bool result = a>b;
    <	//是否小于
    ==	//是否等于
    !=	//是否不等于
    >=	//是否大于等于
    <=	//是否小于等于

2、各种写法

c 复制代码
左边 条件运算符 右边
//变量之间的比较
//变量和常量比较
	int a = 3; bool result = a < 5;
//计算结果比较
	条件运算符优先级低于算数运算符(先计算,再比较)
    int a = 2; bool result = a+3 > 5-a;

3、不能进行范围比较

​ 1< a <6 C#不能这样写(需要逻辑运算符)

4、不同类型之间的比较

c 复制代码
//不同数值类型之间,可以随意进行条件运算符比较
	int i = 5; float f = 2.2f; bool result = i < f;
//特殊类型char string bool 只能相同类型进行 == 和 != 比较
	string str = "a"; bool result = str == "a";

4、逻辑运算符

​ 对bool类型进行的逻辑运算

1、逻辑与

c 复制代码
&&	对两个bool值进行逻辑运算(青睐false,比较苛刻)
    //有假则假,同真为真
    bool result = true && false;
	int i =3; bool result = i > 1 && i < 5;	//1<i<5;

2、逻辑或

c 复制代码
||	对两个bool值进行逻辑运算(青睐true,比较大方)
	//有真则真,同假为假

3、逻辑非

! 对一个bool值进行取反,优先级较高

4、混合使用优先级问题

c 复制代码
! > && > ||

5、逻辑运算符的断路规则

c 复制代码
//只要逻辑与&&、逻辑或||左边满足(false、true)条件,右边作废
	int i = 1;
	bool result = i < 0 && ++i >=0;

5、位运算符

​ 主要用于数值类型进行计算(将数值转换为二进制,再进行位运算),游戏中可以通过位运算表示buff和状态的添加或者移除

1、位与 &

c 复制代码
//连接两个数值进行位运算,将数值转为二进制
对位运算:有0则0
	int a = 1,b = 5; int c = a & b;

2、位或 |

c 复制代码
//连接两个数值进行位运算,将数值转为二进制
对位运算:有1则1

3、异或 ^

c 复制代码
//连接两个数值进行位运算,将数值转为二进制(异或可以做加密方式)
对位运算:相同为0,不同为1

4、位取反 ~

c 复制代码
//写在数值前面,将数值转为二进制
对位运算:0变1,1变0
    int a = 5 ; int b = ~a; //-6
int类型5的二进制:
    0000 0000 0000 0000 0000 0000 0000 0101
    取反后为负数二进制,反码补码得到-6

5、左移 << 和 右移 >>

c 复制代码
//让一个数的二进制进行左移和右移
左移几位,右侧加几个0
    int a =5; int b = a << 1;
右移几位,右侧删几位

6、三目运算符

c 复制代码
//bool类型 ? bool类型为真返回内容 : bool类型为假返回内容;
string	str = true ? "条件为真" : "条件为假";
思考 闰年

​ 如何判断闰年?(闰年年份能被400整除或者能被4整除,但不能被100整除)

c 复制代码
int year = 2024;
string result = year %400 ==0 || year%4 == 0 && year%100 != 0 ? "闰年" : "平年";
相关推荐
&岁月不待人&1 分钟前
Kotlin by lazy和lateinit的使用及区别
android·开发语言·kotlin
StayInLove5 分钟前
G1垃圾回收器日志详解
java·开发语言
无尽的大道13 分钟前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
爱吃生蚝的于勒16 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
binishuaio26 分钟前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE28 分钟前
【Java SE】StringBuffer
java·开发语言
就是有点傻32 分钟前
WPF中的依赖属性
开发语言·wpf
洋24040 分钟前
C语言常用标准库函数
c语言·开发语言
进击的六角龙42 分钟前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
wrx繁星点点43 分钟前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式