C#编程自学之运算符和表达式

 更新时间:2020年6月25日 11:26  点击:2681

我们了解完C#数据类型与变量之后,还会遇到变量之间的运算,例如计算两个数的和等等运算。那么,C#中都有那些常用的运算符呢?那么,往下看吧!
一、算数运算符
1.基本算数运算符
说到算数运算符,我们首先就应该可以想到我们数学中一些常用的运算符例如:加 减 乘 除 求余!
那么在C# 这些运算符都是如何表示的呢?

知道C#基本运算符的表示之后我们该如何去使用呢?那么我们来看段代码来看下什么是表达式。

int a = 10; //定义一个整形变量a 值为10
int b = 20; //定义一个整形变量b 值为20
//定义一个变量c 值为变量 a+b
int c = a + b; //一组运算符所表述的代码段简称运算符
//定义一个变量c1 值为变量 a1-b1
int c1 = a - b;
//定义一个变量c2 值为变量 a2*b2
int c2 = a * b;
//定义一个变量c3 值为变量 a3/b3
int c3 = a / b;
//定义一个变量c4 值为变量 a4%b4
int c4 = a % b;
  
Console.WriteLine("a + b = {0}",c); 
Console.WriteLine("a - b = {0}", c1);
Console.WriteLine("a * b = {0}", c2);
Console.WriteLine("a / b = {0}", c3);
Console.WriteLine("a % b = {0}", c4);

上段代码我们主要阐述了两个知识点,一个是基本运算符加法的使用以及什么是表达式。那么我们来分析一下。
我们来看第五行代码来看C#中运用基本算数运算符非常简单,跟我们数学上计算加法一样,首先看(a + b)等同于(10 + 20)计算完成后将计算结果赋给等号左边的变量,这样就完成了一个基本的算数加法运算,那么进行一个加法运算的代码描述的代码组合,我们就可以看做是C#中的表达式。
分析完一个那么后面的大家一定都可以推出来了吧?那么我们来看看运行的结果吧!

结果是否在你的预料之中呢?
2.自增运算符与自减运算符
了解完基本运算符之后我们在来看一种很有用的运算符:自增运算付与自减运算符!

那么自增符号与自减运算符是什么意思呢? 废话不多说,看代码:

int a = 1;
a++; // a = a + 1
int b = a;
a--; // a = a - 1
int c = a;
  
Console.WriteLine("a++ : {0}", b);
Console.WriteLine("a-- : {0}", c);

好的那么我们在分析一下:
首先来看第二行a++;自增符号++等于本身加1, 那么a = 1 ,执行a++后(a 自身加1),a自身的值为2
那么在来看第四行a--;自荐符号--等于本身减1,那么a此时已经等于2,执行a--后(a自身减1),a自身的值为1
分析完之后还是让结果来验证答案吧!

二、赋值运算符
看完基本的算数运算符我们在来看一下什么是赋值运算符,其实在上边的例子中我们已经使用了赋值运算符,那什么是赋值运算符,对了就是为变量赋值的符号,也就是我们上边例子中的等号。
那么赋值运算符就只有等号一个吗?答案错,C#还为我们提供了一些方便我们简化表达式的复制运算符,如下表:

那么这些等号都代表什么意思呢?其实很简答,来看一段代码跟上边例子坐下比较我们会发现,这些赋值运算符就是帮我们简化了表达式而已。

int a = 10;
a = a + 10; //将a 的值赋予 a(10) + 10 
//运算完成后a = 20
Console.WriteLine(" a=a+10; a={0}",a);
  
a = 10; //在将a还原回10
a += 10; //等同于 a = a + 10; 将a 的值赋予 a(10) + 10 
//运算完成后a还是等于 20
Console.WriteLine(" a+= 10; a={0}", a);

还是来分析一下:
1到4行大家一定都可以看明白,那么直接看地7行,你想对了,其实 a+=10 等同与 a=a+10 只是这个运算符简化了表达式。 那么还是用事实来证明吧!

三、运算符优先级以及括号的运用
说完运算符与表达我们来看看运算符之间的优先级,什么是优先级?  其实优先级就是当我们表达式中出现多个运算符时,应该先执行哪个运算符,就好比数学中的先乘除后加减,那么C#中也不例外也是先乘除后加减。关于更多的优先级我不打算在这里介绍,因为我们完全可以使用括号来提示表达式的优先级()。对运算符优先级感兴趣可以参考C#相关书籍。那么还是用一个例子来描述下C#中加减乘除的优先级吧!

int a = 10 * 2 - 10 / 2 + 3;//那么根据先乘除后加减的原则我们得到的结果应该是 18
Console.WriteLine("10 * 2 - 10 / 2 + 3 结果为:{0}", a);
那么还是来分析一下,根据先乘除后加减的法则我们来看:
首先计算10 * 2  结果是20
在计算 10 / 2 结果是5
那么这个时候 表达式编程 20 - 5 + 3 ,这里要注意 加和减属于同一级别运算符所以哪个在前面先运算
这个时候执行 20 - 5 结果是 15
在执行 15 + 3 结果为18 继续用事实来证明我的分析。

那么好,这个时候我要是想让10 * 3 在让2 + 3 在去让10除怎么办? 不知道?代码告诉你:

int a = 10 * 3 - 10 / (2 + 3);//这个时候()中的运算符优先级最高所以先执行括号中的表达式
Console.WriteLine("10 * 3 - 10 / (2 + 3) 结果为:{0}", a);
继续来分析一下,根据括号优先级最高的法则我们来看:
首先执行(2 + 3) 结果是 5
在执行 10 * 3  结果为 30
此时表达式为 30 - 10 / 5 除号优先级高 先运算除法 表达式为 30 - 2
那么结果为28  看真相吧!

提示:了解运算符优先级也很重要,不过有了括号大部分情况下我们可以自己控制优先级,所以灵活合理的运用括号可以省去运算符优先级带来的复杂性。

[!--infotagslink--]

相关文章

  • C#实现简单的登录界面

    我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。...2020-06-25
  • 浅谈C# 字段和属性

    这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • C#实现简单的Http请求实例

    这篇文章主要介绍了C#实现简单的Http请求的方法,以实例形式较为详细的分析了C#实现Http请求的具体方法,需要的朋友可以参考下...2020-06-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#中new的几种用法详解

    本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧...2020-06-25
  • 使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)

    这篇文章主要介绍了使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#开发Windows窗体应用程序的简单操作步骤

    这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • C#和JavaScript实现交互的方法

    最近做一个小项目不可避免的需要前端脚本与后台进行交互。由于是在asp.net中实现,故问题演化成asp.net中jiavascript与后台c#如何进行交互。...2020-06-25
  • C++调用C#的DLL程序实现方法

    本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
  • 轻松学习C#的基础入门

    轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
  • C#变量命名规则小结

    本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
  • C#绘制曲线图的方法

    这篇文章主要介绍了C#绘制曲线图的方法,以完整实例形式较为详细的分析了C#进行曲线绘制的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • c#自带缓存使用方法 c#移除清理缓存

    这篇文章主要介绍了c#自带缓存使用方法,包括获取数据缓存、设置数据缓存、移除指定数据缓存等方法,需要的朋友可以参考下...2020-06-25
  • c#中(&&,||)与(&,|)的区别详解

    这篇文章主要介绍了c#中(&&,||)与(&,|)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 经典实例讲解C#递归算法

    这篇文章主要用实例讲解C#递归算法的概念以及用法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#中list用法实例

    这篇文章主要介绍了C#中list用法,结合实例形式分析了C#中list排序、运算、转换等常见操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25