[小雨学编程之C#] 11 描述运算意图的句子:表达式
上一节我们介绍了承载任务的元数据:变量,也介绍了一些常用的变量。
1、表达式
但是在上一节代码中涉及到了这样的代码a=a+1;
其中在我们理解这段代码的时候,需要将右边的a+1看成一个整体。
其实类似这样的整体我们的学名叫做表达式,在这里a+1就是算数表达式,它是计算的基本组成。
那么由a+1这样的算数表达式,我们可以推出加、减、乘、除四个数学运算的算数表达式
比如:
其中b=a+1;的意思是,将a+1的结果放入b中,然后经过下面的Console.WriteLine(“此时的b中存储的是:”, b);将b中的值输出来,其他的以此类推。
2、表达式是一个整体
但是我们曾表述a+1是当成一个整体看,只是在程序运行后,我们要使用这个表达式的结果,所以我们的代码也可以这样修改:
在这里我们看到Console.WriteLine(“加法结果:”, a + 1);
其中替换标识符需要使用后面提供的替换内容,但是替换内容却写着a+1,那么在这里就充分的体会到了,表达式其实就是一个整体,当程序运行到这个位置的时候,知道了替换标识符需要用到后面的替换内容,那么程序就在这里直接计算a+1,并将结果传递给替换标识符。
3、存储表达式值的变量类型应当和表达式计算的结果类型一致
3.1运算符两边的操作数类型不一致
但是在我们实际的运算过程中会发现一个现象,比如:
这样是可以正常运行的,但是修改代码:
这个时候就报错了,并且将鼠标放在红色波浪线位置会发现:
这是怎么回事?
这种情况是因为,我们的C#在运行的时候,将我们计算过程中使用的变量分类十分的严格,我们的a+1.1得到的结果是一个小数,我们可以直接用Console.WriteLine()输出,但是在这句话上c=a+1.1中,是将a=1.1的值存储在c中,那么此时的c就不能是int了,需要是double,于是我们修改代码:
就可以正常运行喽。
3.2运算符两边操作数类型一致,但是结果类型不一致
还有一种现象:
这……分明是计算错误嘛,这咋能得0呢?
我们再看一个现象:
这……这里我分明已经用小数的数据类型保存运算结果啦?但是说好的1.5呢?
但是,我们简单修改代码:
这是咋回事?
其实这里在运算的时候,表达式会自动检测两边的操作数的数据类型,并将计算结果的数据类型默认为操作数中范围较大的类型。
比如:int a=2,计算a/3这个表达式的时候,/号发现两边的操作数数据类型都是int,于是计算的时候,就在int范围内计算结果,因为我们得到的是一个小于1的小数,所以表达式直接在结果的整数部分取值,所以计算结果为0。
这个结论在int a=3,计算a/2这个例子中印证了,即使这时候,我们用一个小数c来存储a/2的值,虽然这个值实际应当为1.5,但是由于此时/号两边均为int类型,表达式的值直接取整数部分,所以只为1。
但是在double a=3;这个例子中计算a/2的时候,/号发现两个操作数中一个是int,一个是double,其中double比较大,所以那么计算结果就用double喽,就这样我们得到了1.5。
所以这里例子提醒我们,在编写表达式的时候需要注意表达式中变量类型和存储表达式的值的变量类型,以免出现运行错误,或者运行结果和正常逻辑不一致情况。
4、求余表达式
在计算表达式中,还有一个特殊的符号%,这个符号是求余数表达式,我们看代码:
这个就不多说啦,就是我们小学学习的求余数算法。
5、赋值运算符
在我们的实际编写代码过程中,会出现一些代码的简写方式,比如:
这种是正常的写法,现在我们对这样的写法进行简单的修改:
这……又是咋回事,这代码没敲错吧?
这里就涉及到了一个新的知识点,赋值运算符,这里的a+=1就相当于a=a+1。
所以以此类推,我们有+=,-=,*=,/=,%=。
其实我们之前提=的时候,我们说=号是赋值运算符,所以=,+=,-=,*=,/=,%=这6个就是完整的赋值运算符,只是=只有赋值功能其余的5个都有运算并且赋值的功能。
[小雨学编程之C#] 11 描述运算意图的句子:表达式相关推荐
- 学习python下载哪个版本_听学编程之Python 一、Python版本和安装
本文应听友要求,根据喜马拉雅上的音频节目『听学编程之Python』整理所得. python是好是坏,我就不多啰嗦了,既然你收听了这个教程,那就说明你要学这个语言了.基本不会亏的.这个语言很有用,完全可 ...
- 听学编程之python_听学编程之Python 三、宝玉在红楼梦里说了什么
应听友要求,根据喜马拉雅上的音频节目『听学编程之Python』整理所得. 除了数值外,Python处理字符串特别方便,甚至在编程界,也算是最方便的类型.要掌握哪些入门知识呢?字符串 unicode 列 ...
- 小汤学编程之JavaEE学习day08——Maven
一.Maven介绍 1.什么是Maven 2.Maven的功能 3.什么是构建 4.项目的构建方式 二.Maven的安装 1.下载 2.安装 3.配置 ...
- java声明变量简单程序_零基础学编程之java变量
01使用变量的意义 变量相当于自然语言中的代词,代词具有代替.指示作用,比如每个人的姓名,代表的就是真实的一个个体.如果没有名字,我们在交流的时候,讨论某一个人就需要说:身高1米75,单眼皮,双下巴的 ...
- java乘以2的位计算符号_java编程之:按位与运算,等运算规则
按位与运算符(&) 参加运算的两个数据,按二进制位进行"与"运算. 运算规则:0&0=0; 0&1=0; 1&0=0; 1& ...
- 小汤学编程之JavaEE学习day06——LayUI
一.LayUI简介 1.下载 2.入门案例 二.栅格布局 三.图标 四.按钮 1.按钮类型 2.主题 3.尺寸 4.圆角 5.按钮组 五.后台布局 六.表格数据 ...
- 小汤学编程之JavaEE学习day04——EL表达式、JSTL
一.EL表达式 1.EL表达式简介 2.禁用EL 3.EL中的11个隐式对象 4.EL表达式的作用 二.JSTL 1.引入步骤 2.通用标签 3.条件标签 ...
- 小汤学编程之JavaEE学习day01——HTTP简介、B/S与C/S应用、连接的建立与断开、Tomcat
一.HTTP简介 1.HTTP请求报文 2.HTTP响应报文 二.B/S与C/S应用 三.连接的建立与断开 1.连接的建立(三次握手) 2.断开连接(四次挥手) 四.连接的建立与断开 ...
- 小汤学编程之jQuery学习day03——事件、效果、插件
一.事件 1.绑定事件 2.解绑事件 二.效果 1.基本效果 2.淡入淡出 3.自定义效果 三.插件 1.下载地址 2.语法 3.常用的校验 4.案例 ...
最新文章
- MySQL binlog
- 全国知名高校网站挂马现象严重 考生面临安全风险
- java 规范异常的处理_规范-异常处理
- Android Studio新建类头部注释和添加函数注释模板及快捷键
- redis的分布式解决方式--codis
- 《C++ Primer 5th》笔记(3 / 19):字符串、向量、迭代器和数组
- ZooKeeper配额指南
- 【BZOJ1934】【codevs2341】善意的投票,二分图最小割
- python中reload作用_import reload __import__在python中的区别
- python调用http方法_python 使用poster模块进行http方式的文件传输到服务器的方法
- WinForm中ComboBox绑定数据的用法
- 一个日志框架的开源,有些不错的创意。
- CSS day_14(6.29) Sass基本规则和语法、云服务器的购买和使用
- Photoshop之通道抠图,适用于扣人像,树叶等细微抠图
- cmake简洁教程 - 第五篇
- 一点点墨水滴在纸上写出来的字体
- RSA的非对称加密,公钥加密私钥解密,本地测试
- 10进制转化为16进制的算法
- ChinaSoft 论坛巡礼 | 泛在计算时代的智能化运维
- excel模糊查找公式_Excel查找公式挑战20171026
热门文章
- 多媒体视频开发_(5) ffmpeg -stream_loop -1 执行怎么都不循环播放
- MAYA MASH多米诺
- xilinx7系列FPGASelectIO篇(2)_IO逻辑资源简介
- G.O.A.T!最靠谱的Mirai僵尸病毒编译教程
- ubuntu+appium+testng+android真机运行
- MySQL之——MySQL5.7以上my.cnf配置文件配置
- python 图表绘制(matplotlib)
- 用Delphi实现快闪窗体信息提示
- 应该如何选择一款使用方便的微信管理工具?
- javamail——邮件发送