第一章 C++编程基础——1.3表达式撰写

第一章 C++编程基础——1.3表达式撰写,第1张

  本文主要介绍C++中常见的运算符,包括算术运算符、关系运算符、逻辑运算符和符合赋值等。

1、算术运算符
//算术运算符
a+b  //加法
a-b  //减法
a*b  //乘法
a/b  //除法
a%b  //取余

  除法运算(/)中,小数点后的部分会完全舍弃,不会进行四舍五入,若要获得余数部分,可以使用(%)运算符。例如:

5/3 = 1   5%3 = 2

  余数运算常见案例有:假设我们希望程序打印的数据每行不能超过8个字符,不满 8个字符用' '代替,否则换行。

const int lin_size = 8;
int cnt = 1;
//以下语句会执行多次,每次执行完,cnt会增加1
cout << a_string << (cnt % lin_size ? " " :  "\n");

  这里有个特殊语句:(cnt % lin_size ? " " : "\n")。就是条件运算符(conditional operator),语句表示:如果余数运算的结果为0,则条件运算符的输出为"\n";如果余数运算符的结果非0,则条件运算符输出" "。条件运算符的一般形式为:

expr
	? 如果expr为True,执行该语句
	: 如果expr为False,执行该语句

  注意:条件表达式的值为0,会被视为False;其他非零值则被视为True。上述例子中,如cnt不是8的整数倍,条件表达式不为0,则执行'?'后的部分。

2、复合赋值

  符合运算符是一种比较简单的表达方式。若在某个对象上进行运算时,然后将运算结果赋予给该对象,我们可以这样写:

cnt+=1  //等同于 cnt=cnt+1

  补充:递增(++)与递减(- -)的用法。
  (1) 若将运算符前置到某个对象上,原对象值会先进行递增(或递减),然后在使用该对象。

int cnt = 1;
++cnt;
cout << cnt;//cnt值为2

  (2) 若将运算符后置到某个对象上,原对象会先供给表达式使用,然后在行递增(或递减)。

int cnt = 1;
cnt++;
cout << cnt;//cnt值为1
3、关系运算符

  关系运算符的结果为两种TrueFalse。常见的关系运算符有如下六种:

a == b; //等于
a != b; //不等于
a < b; //小于
a > b; //大于
a <= b; //小于等于
a >= b; //大于等于

  利用相等运算符==体验用户的回答:

bool usr_more=True;
char usr_rsp;
//询问用户是否愿意继续下一个问题
//将用户的回答读入usr_rsp对象中
if(usr_rsp=='N')
	usr_more=False;

  if语句之后的表达式运算结果为True时,条件成立,执行后面的语句。但是如果usr_rsp等于小写'n'时,我们必须要对两者进行 *** 作,解决方法之一就是:

if(usr_rsp=='N')
	usr_more=False;
else if(usr_rsp=='n')
	usr_more=False;	

  注意:不要将赋值运算符(=)和相等关系运算符(==)相混淆。

4、逻辑运算符

  常见的逻辑运算符有OR(||)AND(&)NOT(!)利用逻辑运算符可以解决上述问题。上面的问题我们可以有另一种解法:

if(usr_rsp=='N' || usr_rsp=='n')
	usr_more=False;

  注意:逻辑运算符的原则是:短路求值法。

运算符优先级

  同一表达式会有多个运算符,求值的顺序是按照运算符事先定义好的优先级来决定。常见的运算符优先级如下(由高到低):

逻辑运算符 NOT
算术运算符 (*/%)
算术运算符(+-)
关系运算符(<><=>=)
关系运算符(==!=)
逻辑运算符 AND
逻辑运算符 OR
赋值运算符

  注意:如果要改变内置运算符的优先级,可以利用小括号。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/738088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存