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

我们了解完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  看真相吧!

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

(0)

相关推荐

  • C#中math类的全部运算方法(总结)

    如下所示: Abs 返回指定数字的绝对值. Acos 返回余弦值为指定数字的角度. Asin 返回正弦值为指定数字的角度. Atan 返回正切值为指定数字的角度. Atan2 返回正切值为两个指定数字的商的角度. BigMul 生成两个 32 位数字的完整乘积. Ceiling 返回大于或等于指定数字的最小整数. Cos 返回指定角度的余弦值. Cosh 返回指定角度的双曲余弦值. DivRem 计算两个数字的商,并在输出参数中返回余数. Exp 返回 e 的指定次幂. Floor 返回小于或等

  • C#中矩阵运算方法实例分析

    本文实例讲述了C#中矩阵运算方法.分享给大家供大家参考.具体分析如下: 一.测试环境: 主机:XP 开发环境:VS2008 二.功能: 在C#中实现矩阵运算 三.源代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Sy

  • C#实现Winform版计算器

    本文实例为大家分享Winform版计算器的具体实现方法,供大家参考,具体内容如下 前台页面设计 后台代码实现 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 计

  • C#计算器编写代码

    利用C#编写一个计算器.如下图,能够完成基本的四则运算. 当然这个程序甚至还不上Windows附件那个自带的多功能计算器.  不过这个程序的逻辑还是非常值得思考的,首先你要考虑好用户按+ - * / =等运算符号.数字键之后计算器的状态记录问题.  然后要防止多次按某一个键的问题.比如小数点.就不应该让用户在输入一个数的时候键入两次.  最后,还要弄两个数组,一个存放用户在输入的数字,另一个存放用户输入的符号.  制作过程如下,  1.布局如下,同时可以参考<简单实现C#窗体程序判断是否闰年 >

  • c#数学表示法(后缀表示法)详解

    在笔试中有这么一道题目,写出一个表达式的后缀表示形式,当时就迷茫了,什么是后缀表达式,还真没听过.后来查了下原来是一种比较特殊的数学表达式,因为在日常生活中用的不多,不太了解.有三种表达式:前缀表达式.中缀表达式和后缀表达式.一般用的是中缀,比如1+1,前后缀就是把操作符移到前面和后面,下面我就来介绍一下这三种表达式. 1.前缀表示法 前缀表示法又叫波兰表示法,他的操作符置于操作数的前面(例:+ 1 2),是波兰数学家扬·武卡谢维奇1920年代引入的,用于简化命题逻辑.因为我们一般认为操作符是在

  • C#编写的windows计算器的实例代码

    复制代码 代码如下: using System; using System.Drawing; using System.Windows; using System.Windows.Forms; using System.Collections; using System.ComponentModel; using System.Data; namespace comput {     /// <summary>     /// 这是一个计算器的简单实现.     /// </summar

  • C#日历样式的下拉式计算器实例讲解

    本文介绍了如何在Visual Studio中创建用户控件来显示下拉式计算器,弹出效果类似于日历控件. 介绍 如果我们正在做一个类似于库存控制和计费系统的项目,有些部分可能必须手动计算数值.因此,用户就不得不使用计算器得到结果,再填入到输入字段中,或者在工作窗口上单独打开一个计算器窗口.总之,各种不便和麻烦. 这篇文章主要描述的是如何添加下拉式计算器到DataGridView单元格中,如下图: 使用代码 第一步,我们必须先创建一个函数计算器,并且能够使用控件.因此,不妨先创建一个Visual St

  • c#入门之实现简易存款利息计算器示例

    本想把练习题做了的结果放上来,不过发现附录是有答案的,就算了吧,自己做了没问题就行了哈.之前提到过,要是有朋友有想法,需要做小工具我可以帮忙实现,不过貌似大家都很忙.SO,自己学完第4章后,决定做一个工具:简易存款利息计算器,可以更好地复习前面学过的知识. 原理介绍为啥叫简易呢,因为现在只能计算整存整取(只有1.2.3.5四种年限哈)的利息,并且没有启用自动转存(俗称利滚利,就是把本年和上年的利息之和,作为下年利息计算时的本金)功能,方便和网上已有的工具对比计算结果,判断自己的程序算出来正不正确

  • C#基于纯数学方法递归实现货币数字转换中文功能详解

    本文实例讲述了C#基于纯数学方法递归实现货币数字转换中文功能.分享给大家供大家参考,具体如下: 最近由于项目的原因,需要写一个货币数字转换中文的算法,先在网了找了一下,结果发现无一列外都是用(Replace)替换的方式来实现的,所以想写个另外的算法:因为本人是学数学出身的,所以用纯数学的方法实现. 注意:本文中的算法支持小于1023 (也就是9999亿兆)货币数字转化. 货币中文说明: 在说明代码之前,首先让我们回顾一下货币的读法. 10020002.23  读为 壹仟零贰万零贰元贰角叁分 10

  • C#实现简单的计算器功能完整实例

    本文实例讲述了C#实现简单的计算器功能.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Collections; usi

随机推荐