博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《交互式程序设计 第2版》一2.3.4 运算符
阅读量:6757 次
发布时间:2019-06-26

本文共 3095 字,大约阅读时间需要 10 分钟。

本节书摘来华章计算机《交互式程序设计 第2版》一书中的第2章 ,第2.3.4节,Joshua Noble 著 毛顺兵 张婷婷 陈宇 沈鑫 任灿江 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3.4 运算符

在程序中,运算符就是编译器用来执行命令和运算的符号,例如“=”用来赋值,“==”用来比较等。运算符有三类:一是数学运算符,用于数学运算,就跟数学课上学到的一样;二是赋值运算符,用来改变变量的值;三是比较运算符,比较两个变量是否相等,谁大谁小。

数学运算符的用法就跟一般数学式子里的一样。用“+”可以把两个变量相加,例如:

int apples = 5;int moreApples = apples + 3; // moreApples等于8。

但若是把两组字符串相加就有所不同了,结果是两组字符串接在一起:

string first = "John"; string second = "Brown"; string full = first+second; // full等于JohnBrown

这样的结果是由所谓“运算符重载”造成的。这个话题有点高级,这本书里不作介绍,有兴趣的读者可以参考第17章列出的编程书目或是上网查阅。

其他简单的数学运算符有“-”(减)、“*”(乘)和“/”(除),还有“%”(取模)。
取模就是左边的数除以右边的数所得的余数。下面是一些例子:

8 % 2 // 结果等于0,8被2除无余数 17 % 2 // 结果等于1,17除以2的余数是119 % 5 // 结果等于4,19除以5的余数是412 % 11 // 结果等于1,12除以11的余数是119.0 % 5 // 结果等于4.0,因为是对浮点变量做取模运算

赋值运算符从右侧开始起作用,也就是说,运算符把右侧变量的值赋给左侧变量,例如:

int age  =  6;

“=”把左边变量的值设为6。跟“=”类似,以下运算符也用来设置左侧变量的值。

+=
把右侧的值加到左侧变量的原值上再赋给左侧变量:

int height = 6;     height += 1; // height等于7     height += 10; // height等于17

-=

把右侧的值从左侧变量的原值减掉再赋给左侧变量:

int size = 16;     size -= 8; // size等于8     size -= 6; // size等于2

++和--

把左侧变量的值加1或减1:

int hearts = 2;     hearts++; // hearts值为3     hearts--; // hearts变为2     hearts--; // hearts变为1

*= 或 /=

道理跟“+=”和“-=”一样,用右侧的值乘或者除左侧变量的原值再赋给左侧:

int i = 15;     i /= 3; // i等于5     int j = 20;     j /= 2; // j等于10     float k = 100.0;     k /= 3.333333; // k等于30.000004     float m = 100.0;     m /= '2'; // 不建议这样做     i *= 4; // i等于20     m *= 0.5; // m原值为2.0,现在等于1.0

值的比较对编程来讲十分重要,尤其是在一些控制语句里。2.4节会讲控制语句,现在先来熟悉一下各种比较运算符。我们接下来会经常遇到它们。在不同的编程语言里,比较运算符略有不同。比较运算就是判断变量的值是否相等,谁大谁小。

==(相等)
比较两者是否相等,例如:

5 == 4; // false 'a' == 'a' // true (12 / 3) == (2 * 2); // true 4.1 == 4 // falsechar(102) == int('f') // true, 因为ASCII里 'f' 对应值102"duck" == 0.002 // false, 该操作无效!=(不相等)

判断两者是否不相等,例如:

3 != 1 //true, 它们的确不相等'B' != 'b' // 也是true, 它们不相等>(大于)

判断左侧的值是否大于右侧的值,跟数学课上教的是一样的:

4 > 3 // true 5 > 192901.2 //false "fudge" > 8 // false, 该操作无效 <(小于)

判断左侧的值是否小于右侧的值,仍然跟数学课上教的一样:

3 < 2 // false 'g' < 106 //  'g' 在ASCII里的值为103,所以结果为true -100 < 100 // true >=(大于或等于)

判断左侧的值是否大于或等于右侧的值,数学课也是这么教的:

3 >= 3 // true, 因为它们相等0 >= -0.001 // 0大于-0.001, 因此结果是true '?' >= 'h' // false, 因为 '?'的ASCII 码是63 ,而'h'是104 4 >= 28 // false "happy" >= "sad" // false, 该操作无效<=(小于或等于)

判断左侧的值是否小于或者等于右侧的值,嗯,大家数学应该都还不错:

13.001 <= 13.001 // true, 它们相等0 <= -0.001 // 0 比-0.001大, 因此结果为false '!' <= '7' // true, 因为 '!'的 ASCII码是33,而'7'是55 &&

判断左侧的语句和右侧的语句是否同时为true:

(4 > 3) && ('f' > '1') // true ((5 * 2) == 10) && ((6 - 3) != 4) // true (5 < 10) && (2 > 4) // false, 左侧为true但右侧不是||

判断左边的语句和右边的语句中是否至少有一个为true:

(4 < 3) || ('f' > 'e') // true, 尽管左侧为false,但右侧为true((5 * 2) == 10) || ((6 - 3) != 4) // 两侧都为true ('b'=='g') || (2 > 4) // false, 两侧都为false

对于以上的比较和判断,你可能还心存不解,他们到底用来做什么。别急,在控制语句里,它们就能一展身手了。表2-2列出了上述所有运算符及其用法。

表2-2:运算符及其用法

算符    用法+,-,*,/     加,减,乘,除%    取模,返回除法运算的余数=    赋值,把右侧的值赋给左侧变量+=,-=,*=,/=    数学赋值;用右侧的值加、减、乘、除左侧变量原值,并把结果赋给左侧变量++    向左侧变量加1--    从左侧变量减1==    比较左右两侧的值,如果相等,表达式结果为true!=    比较左右两侧的值,如果不相等,表达式结果为true>,>=    比较左右两侧的值,如果左侧值大于或不小于右侧值,表达式结果为true<,<=    比较左右两侧的值,如果左侧值小于或不大于右侧值,表达式结果为true&&    比较左右两侧表达式的结果,如果两侧都为true,则结果为true||    比较左右两侧表达式的结果,只要其中一侧为true,则结果为true

转载地址:http://xqzeo.baihongyu.com/

你可能感兴趣的文章
表操作汇总(复制,删除,修改,插入,查询及数据库的复制)
查看>>
redis 基本数据类型-列表(List)
查看>>
H5开发推荐使用Q.js,轻量的前端单页路由框架
查看>>
一些简单的递归算法
查看>>
list切片的补充
查看>>
pdf生成库-libharu编译
查看>>
[Python]处理windows下多级目录文件,上传到Linux服务器
查看>>
java enum用法
查看>>
3月11日工作日志
查看>>
弹性盒布局(flex)
查看>>
《梦断代码》读后笔记_1
查看>>
设计模式学习笔记之责任链模式
查看>>
1597: [Usaco2008 Mar]土地购买
查看>>
Oracle数值处理函数 (绝对值、取整...)
查看>>
年薪10W和100w的人差距在哪?
查看>>
Redis的集群安装以及rehash重新迁移教程指南
查看>>
怎样去掉hyperlinkButton 控件的下划线 --两种方式
查看>>
Linux篇---Vi的使用
查看>>
【Python】列表、字典和元组的排序
查看>>
关于c语言的输入输出
查看>>