【C#学习笔记】【4】除了加减乘除,还有别的运算么(算数运算符与逻辑运算符)

本节的内容有点枯燥,但是很简单,记住就行,就像小学时我们刚学加减乘除混合运算那样。记住运算的优先性。(当然,如果你有C语言或其他基础,可以跳过,但是我不建议你跳过)

算数运算符

什么是算术运算符呢?当然就是做数学算数的啊,比如上节用到的加减乘除。下面介绍一些常用的运算符(+-*/我就不说了)。

取余数运算符%

%可以当作运算符用,其含义是取余数,也叫求模运算。例子如下:

int a=5;
int b=3;
int c=a%b;   //即5被3整除求出余数,结果当然是2了

Console.WriteLine(c);

//运行结果为2

偷懒运算符+=,-=,*=,/=,%=

这些运算符长得有点奇葩,但是含义很好理解,我先写个例子:

int a = 5;
a += 2;
Console.WriteLine(a);
a -= 2;
Console.WriteLine(a);
a *= 2;
Console.WriteLine(a);
a /= 2;
Console.WriteLine(a);
a %= 2;
Console.WriteLine(a);

如果我在这里告诉你,a+=2相当于是a=a+2的话,结果也就是7,那么其他的你能猜到么?

我想你猜到了,这也是我为什么称这类运算符为偷懒运算符的原因,他可以简化很多语句的写法。当然,你不知道这些运算符不会影响你做其他的,因为,他只是简写。

晕晕的运算符++,--

其实,++和--理解起来一点都不难,只是他们在某些情况下会令你十分晕。

先来说一下其含义吧,++相当于+=1,也就是自身增加1,--就是自减1喽。例如下面的程序:

int a=0;
a++;   //即a=a+1;也是a+=1;

Console.WriteLine(a);

//运行结果是1

上面的例子中,我把++写在了变量的后面。读到这里,是不是读出些画外音,难道++还可以写在前面?你说对了。见下面的例子:

int a=0;
++a;

Console.WriteLine(a);

//运行结果为1

看到这里,是不是感觉郁闷呢,两种写法并没有什么区别么,结果都相同。那我下面再写一个例子:

int a = 0;
int b;
int c = 0;
int d;
b = a++;
d = ++c;

Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);

你运行上面的代码了么?如果没有,你可以先猜猜结果。结果如下

是不是和预想的结果不一样呢?我们运行的结果,a,b,c,d分别是1,0,1,1 。为什么会出现上面的情况?这就是我说的会让人晕的运算符。下面我详细解释一下。

如果++和--运算符在变量的前面,那么,变量会先进行自增自减,然后再参与整个的运算。如果出现在变量的后面,那么变量会先进行运算,在进行自增或者自减,结合上面的例子分析一下。

b=a++;这一句,由于自增运算符出现在了变量a的后面,所以,变量a先参与运算,也就是b=a这样的赋值运算,此时的a=0,然后a才自增1 。也就出现了结果中的a=1,b=0;

d=++c;这一句,自增运算符出现在了变量前面,所以,变量先进行了自增也就是c=1,然后又赋值给d,所以c和d都等于1 。

你还在晕么?自己输入代码试试。算数运算符我就介绍这么多。

逻辑运算符(关系运算符)

高中数学学过简单逻辑运算吧,在集合的那一部分。简易逻辑也就是与或非了。

先说个前文提到的,你还记得是什么吗?相等运算符==

==相等运算符

前面介绍过了,==会判断左边的是否等于右边,如果相等,结果是true,如果不等,结果是fale,示例如下。

bool b;
b=3==2;
Console.WriteLine(b);
b=3==3;
Console.WriteLine(b);

//运行结果第一个为false,第二个为true

为什么用bool类型变量存放结果呢?思考一下,存放真假的变量类型是什么?

> ,< ,>=,<=,!=运算符

有人说,前两个我见过,大于和小于,那么后三个是什么呢?那就是大于等于,小于等于,不等于咯。因为我们在键盘上不容易输入≤,≥,≠这三个符号。至于示例程序,我就省略了,和上一个一样,换一下符号就OK了。

&&,||,!运算符

以上三个分别为逻辑且,逻辑或,逻辑非,他们是用来连接两个bool类型的值,并且给出最终运算值,其运算关系如下表:


运算符




结果


备注


&&


true


true


true


全真即真


false


false


false


有假即假


false


true


false


true


false


false


||


false


false


false


全假即假


true


true


true


有真即真


false


true


true


true


false


true


!


-


true


false


真变假


-


false


true


假变真

上面的表叫做真值表,下面举个简单的例子:

bool b;
int x = 2;
int y = 3;
int z = 2;

b = x > y && x >= z;
Console.WriteLine(b);

b = x > y || x >= z;
Console.WriteLine(b);

b = ! (x > y);
Console.WriteLine(b);

猜一下运行结果,并且自己运行程序验证一下吧!

三元运算符 ?:

这个运算符长得很奇葩,又是问号又是冒号的,下面我先写个例子,再说说这个干什么的:

int a = 0;
int b = 1;
int max = a > b ? a : b;
int min = a < b ? a : b;

Console.WriteLine(max);
Console.WriteLine(min);

//运行结果,第一个1,第二个0

是不是看出些眉目,我分别找出了a和b中的最大值和最小值。那么这个三元运算符是干什么的呢?

问号前是一个逻辑表达式(就是带逻辑运算符的式子了),如果这个逻辑表达式的结果是true,那么程序会跳到?和:之间执行,如果问号前为false,那么直接跳到:后面执行。下面解释一下上面程序中取最大值的算法。

先是a>b一个逻辑判断,如果真,也就是a大于b了,那么,就执行?后面的a,也就是max=a,如果a>b是假的,那么最大值就是b,也就是:后面的,故max=b。

刚接触这个有点难以理解,我们只需要记住有这么个运算符就行了。在以后的例子中会再提到。

运算符的优先性(混合运算的优先法则)

在下表中列出的优先级从高到低(比如乘除的优先级高于加减)

运算符 说明
x++,x-- 后自增自减
+x,-x,!x,++x,--x 正号,负号,非,前自增,前自减
*,/,% 乘法,除法,取余
+,- 相加,相减
>,<,>=,<= 大于,小于,大于等于,小于等于
==,!= 相等,不相等
&&,||,?: 逻辑且,逻辑或,三元运算符
= 赋值运算符
+=,-=,*=,/=,%= 复合赋值运算

如果出现同级的运算符,则按照从左到右的顺序计算。

当然,你可以用()来改变运算顺序,就像我们数学里的括号。需要注意的是,小括号外面还可以使用小括号,而不是中括号或者大括号。

在实际运用中,如果不记得运算顺序,我们可以添加括号,来保证我们的运算结果和我们的预想结果相同。

变量命名方式(上节的补充)

这部分本来应该在前文写,由于怕内容过多,写在了今天的内容里。

如果你学过C语言你可能有这样的体会,声明变量时,一会儿,a,一会儿又是b的,等一会儿回头看,a是啥玩意儿来着?所以给变量起个好的名字,有助于我们理解程序,也能统一代码风格。下面讲两种常见的命名方式。(如果你有更好的方法或者不采用一下方法,那我也没招)

Pascal命名方式(帕斯卡)

在这种方式中,我们将变量中的每个单词的首字母大写,如UserName(用户名),StudentNumber(学号),是不是很直观的就能知道变量的含义呢?当然,我们的变量不采用这种命名方式,这种方式用在以后学的类,接口,方法,属性中用。

Camel命名方式(骆驼)

这种方式和上一种的区别就是首单词的首字母小写,如userName,studentNumber。这种方式是我们给变量命名的常用方式。

合法的变量名称

不是任意字符都可以作为变量名称的。只能是字母或者下划线(_)开头,后面可以接任意的字母和数字还有下划线,至于长度,你自己一个变量名称写上几百个字母能记得住么?还有就是不要用关键字做变量名称,例如我们前面学的int,double这些,以后还会学到一些。要注意,C#会严格区分大小写,UserName和userName是两个变量。

总结

  1. 算数运算符指的是什么,有哪些常用的
  2. ++和--在变量前后的区别
  3. 什么是逻辑运算符,都有哪些
  4. 了解三元运算符,他是唯一的一个
  5. 运算符的优先性
  6. 补充的变量命名的问题
时间: 2024-08-02 01:14:02

【C#学习笔记】【4】除了加减乘除,还有别的运算么(算数运算符与逻辑运算符)的相关文章

[原创]java WEB学习笔记39:EL中的运算符号(算术运算符,关系运算符,逻辑运算符,empty运算符,条件运算符,括号运算符)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

《深入Java虚拟机学习笔记》- 第12章 整数运算

Java虚拟机提供几种进行整数算术运算的操作码,他们执行基于int和long类型的运算.当byte.short和char类型值参与算术运算时,首先会将它们转换为int类型.这些操作码都不会抛出异常,溢出在这里通常可以被忽略. 整数加法 操作码 操作数 说明 iadd (无) 从栈中弹出两个int类型数,相加,然后将所得int类型结果压回栈 ladd (无) 从栈中弹出两个long类型数,相加,然后将所得long类型结果压回栈 将一个常量与局部变量相加 操作码 操作数 说明 iinc vindex

C++ Primer 学习笔记_27_操作符重载与转换(2)--++/--运算符重载、!运算符重载、赋值运算符重载 、String类([]、 +、 += 运算符重载)、&gt;&gt;和&lt;&lt;运算符重载

C++ Primer 学习笔记_27_操作符重载与转换(2)--++/--运算符重载.!运算符重载.赋值运算符重载 .String类([]. +. += 运算符重载).>>和<<运算符重载 一.++/--运算符重载 1.前置++运算符重载 成员函数的方式重载,原型为: 函数类型 & operator++(); 友元函数的方式重载,原型为: friend 函数类型 & operator++(类类型 &); 2.后置++运算符重载 成员函数的方式重载,原型为:

(原创)c#学习笔记04--流程控制01--布尔逻辑02--按位运算符

4.1.2  按位运算符 &和 | 运算符还有一个作用:对数值执行操作.以这种方式使用时,它们处理的是变量中存储的一系列位,而不是变量值,因此它们称为按位运算符. 下面先讨论&和 |.&运算符第一个操作数中的每个位都与第二个操作数中相同位置上的位进行比较,在得到的结果中,各个位置上的位如表4-5所示. | 运算符与此类似,但得到的结果位是不同的.如表4-6所示. ^运算符的用法与此相同.如果操作数中相同位置上的位有且仅有一个是1,其结果位就是1,如表4-7所示. C#中还可以使用一

学习笔记之07-基本语句和运算

一.基本语句 C语言的基本语句跟Java中的差不多,所以,这里只是简单地提一下 循环语句(do while.while.for) 条件语句(if .if-else.switch) goto语句 二.基本运算 计算机的基本能力就是计算,所以一门语言的计算能力十分重要.C语言之所以无所不能,很大原因在于它有强大的计算能力.C语言一共有34种运算符,其中的大多数运算符跟在Java中的用法是一样的.下面做一个简单介绍. 1.算术运算符 +  加法运算符 -  减法运算符,或负值运算符 *  乘法运算符

《从零开始学Swift》学习笔记(Day 12)——说几个特殊运算符

原创文章,欢迎转载.转载请注明:关东升的博客    除了一些常用的运算符,还有一些其他的: 引用号(.):实例调用属性.方法等操作符. 问号(?):用来声明可选类型. 感叹号(!):对可选类型值进行强制拆封. 箭头(->):说明函数或方法返回值类型. 冒号运算符(:):用于字典集合分割"键值"对. -- 欢迎关注关东升新浪微博@tony_关东升.关注智捷课堂微信公共平台,了解最新技术文章.图书.教程信息                              更多精品iOS.C

Python学习笔记(四)Python对象类型及其运算

Python对象的相关术语: Python程序中保存的所有数据都是围绕对象这个概念展开的 程序中存储的所有数据都是对象 每个对象都有一个身份,一个类型和一个值 例如,school="MaGe linux"会以"MaGe linux"创建一个字符串对象,其身份是指向它在内存中所处位置的指针(其在内存中的地址),而school就是引用这个具体位置的名称 In [14]: name="herry" In [15]: id(name) Out[15]: 

SHELL脚本攻略(学习笔记)--1.5 进行数学运算

使用let.(())或[]进行基本的整数运算,使用expr和bc进行高级的运算,包括小数运算. [[email protected] tmp]# str=10 [[email protected] tmp]# let str=str+6 [[email protected] tmp]# let str-=5 [[email protected] tmp]# echo $str 11 还可以自增.自减运算. [[email protected] tmp]# let str++;echo $str

C#学习笔记-----C#枚举中的位运算权限分配

什么是位运算 常用的位运算主要有与(&), 或(|)和非(~), 比如: 1 01 & 00 = 00; 2 01 | 00 = 01; 3 ~01 =0 0; 运用在权限设计中 先建立一个枚举表示所有的权限管理操作: 1 [Flags] 2 public enum Permissions 3 { 4 Insert = 1, 5 Delete = 2, 6 Update = 4, 7 Query = 8 8 } [Flags]表示该枚举可以支持C#位运算. 枚举的每一项值, 我们用2的n次