一步一步学习C#语言【表达式及运算符】

  • 表达式

    把变量和字面值与运算符组合起来,就可能创建表达式。

    例如:a + b * 3

  • 运算符

    运算符可分为一元运算符、二元运算符和三元运算符。

    1、数学运算符

  • 运算符 类别 示例表达式 结果
    + 二元运算符 var1 = var2 + var3 var1的值是var2与var3的和
    - 二元运算符 var1 = var2 - var3 var1的值是var2减去var3所得值
    * 二元运算符 var1 = var2 * var3 var1的值是var2与var3的乘积
    / 二元运算符 var1 = var2 / var3 var1的值是var2除以var3所得商
    % 二元运算符 var1 = var2 % var3 var1的值是var2除以var3所得余数
    + 一元运算符 var1 = +var2 var1的值等于var2的值
    - 一元运算符 var1 = -var2 var1的值是var2与-1的乘积
    ++ 一元运算符 var1 = ++var2 var2先递增1,然后赋值给var1(即var2+1)
    -- 一元运算符 var1 = --var2 var2先递减1,然后赋值给var1(即var2-1)
    ++ 一元运算符 var1 = var2++ 先把var2赋值给var1,然后var2递增1
    -- 一元运算符 var1 = var2-- 先把var2赋值给var1,然后var2递减1

注:1) bool类型不能进行数学运算;

2) char类型存储也是数字可以进行数学运算,如果把两个char类型变量相加将得到int类型。

3) string类型变量可以进行加法运算,表示两个string变量进行连接。例如

string a = "hello ";

string b = "world";

string c = a + b;  // c = "hello world"

其他数学运算符不能应用于string类型变量。

4) ++和--为递增或递减运算符,把运算符放在操作前面,则操作数在进行任何其他运算前受            到运算符的影响,而把运算符放在操作数后面,则操作数在完成表达式后受到运算符的影响。

例如:    int var1, var2 = 5, var3 = 6;

var1 = var2++ * --var3; // var1 = 5 * 5  ==>  25

2、赋值运算符

运算符 类别 示例表达式 结果
= 二元运算符 var1 = var2 var1被赋值为var2
+= 二元运算符 var1 += var2 var1被赋值为var1与var2的和
-= 二元运算符 var1 -= var2 var1被赋值为var1与var2的差
*= 二元运算符 var1 *= var2 var1被赋值为var1与var2的乘积
/= 二元运算符 var1 /= var2 var1被赋值为var1与var2相除的商
%= 二元运算符 var1 %= var2 var1被赋值为var1与var2相除的余数

注:1) +=赋值运算符同样适用于string类型变量。

2) 当操作数var2表达式很长时,上述运算符使用起来很方便,代码更容易阅读。

例如:    var1 *= var2 + var3  ==>  var1 = var1 * (var2 + var3)

3、运算符优先级

在计算表达式时,会按顺序处理每个运算符。

优先级 优先级

++、--(前缀),+、-(一元)
*、/、%
+、-(二元)
=、*=、/=、%=、+=、-=
++、--(后缀)

注:1)  括号可以重写运算符优先级。

例如:(var1 + var2) * var3  ==>  先计算var1+var2表达式,然后再与var3进行乘积

2)  ++和--用作后缀运算时,它们不对表达式的结果产生影响。可认为它们比所有运算符优先               级都高。

时间: 2024-10-13 02:59:07

一步一步学习C#语言【表达式及运算符】的相关文章

一步一步跟我学习lucene(17)---lucene搜索之expressions表达式处理

有时候我们在做lucene的结果展示的时候可能需要对多个列的内容进行计算,根据多个field对应的值做数值方面的运算. lucene自4.6版本起,提供了用于运算的expression模块: expression分为两部分: org.apache.lucene.expressions:提供了字段绑定和相关的表达式参数传递的功能: org.apache.lucene.expressions.js:提供了表达式定义的功能. Expression类使用示例 Expression是提供document的

【转】朱兆祺带你一步一步学习嵌入式(连载)

原文网址:http://bbs.elecfans.com/jishu_357014_2_1.html#comment_top  从最初涉及嵌入式Linux开始到现在,深深的知道嵌入式的每一步学习都是举步维艰.从去年11月份开始,我就着手整理各种学习资料,希望推动嵌入式学习的前进贡献自己微不足道的一份力量.从去年到现在,将C语言的学习经验整理成<攻破C语言笔试与机试陷阱及难点>(现在仍在更新),这份资料已经在电子发烧友论坛的单片机论坛连载(http://bbs.elecfans.com/jish

一步一步学习Swift之(一):关于swift与开发环境配置

一.什么是Swift? 1.Swift 是一种新的编程语言,用于编写 iOS 和 OS X 应用. 2.Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制. 3.Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣. 4.Swift 是基于成熟而且倍受喜爱的 Cocoa 和 Cocoa Touch 框架,它的降临将重新定义软件开发. 5.Swift 是编写 iOS 和 OS X 应用的极佳手段,并将伴随着新的特性和功能持续演进.

一步一步学习SignalR进行实时通信_3_通过CORS解决跨域

原文:一步一步学习SignalR进行实时通信_3_通过CORS解决跨域 一步一步学习SignalR进行实时通信\_3_通过CORS解决跨域 SignalR 一步一步学习SignalR进行实时通信_3_通过CORS解决跨域 前言 关于start()的补充 跨域解决方案 JSONP CORS CORS跨域演示 结束语 参考文献 前言 这周工作比较忙,一直没有时间学习SignalR,大致希望一周能写一篇关于SignalR的文章.上一篇用Persistent Connections方式实现了个简单的在线

一步一步学习androidNDK编程(java给c传递数据)

这篇已经是"一步一步学习androidNDK编程"的第四篇了,在这篇中,我们将会在java中传递代码给c代码. 首先,我们新建一个android工程"ndkdata", 第一步: 同样的首先声明native方法,如下: public native int add(int a,int b); public native String helloSir(String name); public native int[] intMethod(int[] intArray)

一步一步学习Vue(十一)

本篇继续学习vuex,还是以实例为主:我们以一步一步学Vue(四)中讲述的例子为基础,对其改造,基于vuex重构一遍,这是原始的代码: todolist.js ; (function () { var list = []; var Todo = (function () { var id = 1; return function (title, desc) { this.title = title; this.desc = desc; this.id = id++; } })(); /** *

一步一步跟我学习lucene(19)---lucene增量更新和NRT(near-real-time)Query近实时查询

这两天加班,不能兼顾博客的更新,请大家见谅. 有时候我们创建完索引之后,数据源可能有更新的内容,而我们又想像数据库那样能直接体现在查询中,这里就是我们所说的增量索引.对于这样的需求我们怎么来实现呢?lucene内部是没有提供这种增量索引的实现的: 这里我们一般可能会想到,将之前的索引全部删除,然后进行索引的重建.对于这种做法,如果数据源的条数不是特别大的情况下倒还可以,如果数据源的条数特别大的话,势必会造成查询数据耗时,同时索引的构建也是比较耗时的,几相叠加,势必可能造成查询的时候数据缺失的情况

一步一步跟我学习lucene(9)---lucene搜索之拼写检查和相似度查询提示(spellcheck)

suggest应用场景 用户的输入行为是不确定的,而我们在写程序的时候总是想让用户按照指定的内容或指定格式的内容进行搜索,这里就要进行人工干预用户输入的搜索条件了:我们在用百度谷歌等搜索引擎的时候经常会看到按键放下的时候直接会提示用户是否想搜索某些相关的内容,恰好lucene在开发的时候想到了这一点,lucene提供的suggest包正是用来解决上述问题的. suggest包联想词相关介绍 suggest包提供了lucene的自动补全或者拼写检查的支持: 拼写检查相关的类在org.apache.

一步一步学习IdentityServer3 (1)

学习之初: IdentityServer3我自己最开始了解到的就是做一个SSO单点登录,后面发现还有单独的认证服务功能,其实它还可以做APIs的访问控制,资源授权,另外还可以为提供第三方登录,其他的自由定制目前也在学习中. 网络飞速发展的今天,庞大的数据,庞大的用户,庞大的业务,都需要登录的支撑,登录授权完全看作一个单独的一门技术,Web端需要登录,App端需要登录,Api需要授权访问等等,除此以外大型业务系统,子系统之间其实也需要这样一个登陆授权,所以,登录不再是单一的一个功能点了,简单的查询

一步一步学习SignalR进行实时通信_8_案例2

原文:一步一步学习SignalR进行实时通信_8_案例2 一步一步学习SignalR进行实时通信\_8_案例2 SignalR 一步一步学习SignalR进行实时通信_8_案例2 前言 配置Hub 建立DrawingHub 页面 javascript 实现效果 结束语 参考文献 前言 这讲分析一个案例,在一个画板上画画实时在其他客户端上显示. 配置Hub 在Startup中进行配置: public void Configuration(IAppBuilder app) { app.MapSign