第五章 循环和关系表达式

for循环
  • for循环的步骤:1)设置初始值;2)执行循环,看看循环是否应当继续进行;3)执行循环操作;4)更新用于测试的值。
	for(initialization; test-expression; update-expression)
		body
  • C++表达式是值或值与操作符的组合,每个C++表达式都有值。
  • 只要加上分号,所有的表达式都可以成为语句,但不一定有编程意义。
  • 在循环结束时,for循环控制部分声明的变量将过期。
while循环
	while ( test-condition )
		body
  • 在C++中,for和while循环本质上是相同的。
 	while ( test-expression)
		body
等价于
	for ( ; test-expression; )
		body
  • for循环需要3个表达式,不过他们可以是空表达式,只有两个分号是必需的。
do while 循环
  • do while循环是出口条件循环,是先执行循环体,然后再判断测试表达式,决定是否应继续执行循环。这样的循环通常至少执行一次。
	do
		body
	while(test-expression);
类型别名
  • C++为类型建立别名的方式有两种。
  • 1)使用预处理器:#define BYTE char; 这样,预处理器将在编译程序时用char替换所有的BYTE,从而使BYTE成为char的别名。
  • 2)使用C++的关键字typedef来创建别名:typedef typeName aliasName;
关系表达式
  • 计算机能够对值进行比较,这种能力是计算机决策的基础。
  • C++提供了六种关系操作符:<,<=,==,>,>=,!=。
  • 关系操作符的优先级比算术操作符低。
递增操作符(++)和递减操作符(–)
  • 前缀(prefix)版本,++x:先将x的值加1,然后使用新的值来计算表达式。
  • 后缀(postfix)版本,x++:先使用x的当前值计算表达式,然后将x的值加1。
  • 注意不要在同一语句对同一个值递增或递减多次。规则“使用后修改”和“修改后使用”可能会模糊。
副作用和顺序点
  • 副作用(side effect)指的是在计算表达式时对某些东西(如变量的值)进行了修改。
  • 顺序点(sequence point)是程序执行过程中的一个点,在这里,进入下一步之前确保对所有的副作用都进行了评估。
  • 在C++中,语句中的分号就是一个顺序点。任何完整的表达式末尾都是一个顺序点。
  • 完整表达式:不是另一个更大表达式的子表达式。
  • 表达式语句中的表达式部分以及while循环中检测条件的表达式都是一个完整表达式。
	int guests = 10;
	while (guests++ <= 10)
		cout << guests;//输出 11;
  • 在for循环中,++i 和 i++在逻辑上没有任何区别,最终效果相同。但是在执行速度上可能有细微的差别。前缀版本是将值加1,然后返回结果;后缀版本是首先复制一个拷贝,将其加1,然后将复制的拷贝返回。C++允许你针对类定义这些操作符,所以对于内置类型,采用哪种格式不会有差别;但对于用户定义的且有用户定义的递增和递减操作符的类型,前缀格式效率更高。
递增/递减操作符和指针
  • 可以将递增操作符用于指针和基本变量。
  • 将递增操作符用于指针时,将把指针的值增加其指向的数据类型占用的字节数。
  • 指针递增和递减遵循指针算术规则。因此,如果pt指向某个数组的第一个元素,++pt 将修改pt,使之指向第二个元素。
  • 前缀递增、前缀递减和解除引用操作符的优先级相同,以从右到左的方式进行结合。后缀递增和后缀递减的优先级相同,但比前缀操作符的优先级高,以从左往右的方式进行结合。
组合复制操作符
操作符作用(L为左操作数,R为右操作数)操作符作用(L为左操作数,R为右操作数)
+=将L+R赋给L/=将L/R赋给L
-=将L-R赋给L%=将L%R赋给L
*=将L*R赋给L
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值