C++学习笔记控制流程 2014-9-25
2014-09-25 19:24 想打架的蜜蜂 阅读(158) 评论(0) 收藏 举报1、程序语句的执行顺序称为控制流程。
2、运算符执行顺序是:首先执行!,然后对<等关系操作符进行求值,然后对&&进行求值,然后对||进行求值,==运算符也先于&&
3、优先级规则:从上至下优先级规则
一元操作符+,—,++,——和!
二元算术操作符:*,/,%
二元算术操作符:+,—
布尔运算:<,〉,<=,>=
布尔运算:==,!=
布尔运算&&
布尔运算||
4、短路求值
对于这种&&表达式,c++发现第一个子表达式为假,整个表达式就为假,而不需要再去算第二个子表达式的值。称为短路求值。
C++中有时将整数当作布尔型用,具体来说,就是将所以非0的数字当作true,将0当作false
5、陷阱:将布尔表达式值转换成int值
假如,你想用一个if-else表达式,只要int类型的变量time不大于变量limit的值,就希望表达式为true,如下所示:
if(!time>limit).......
听起来没问题,time不大于limit,但是确实有误,但是编译器不会显示一条错误消息,假定time的值为36,那么(!time)是什么意思?任何非零整数都被转成true,0被转成false,所以!36被解释成not true,也就是false,由于要和int值进行比较,所以false会被转换回0.所以这么写if(!(time>limit)),或者不用!。
6、枚举类型
枚举类型是其值由一系列int类型的常量来定义的一种数据类型,定义枚举类型时,可使用任何int值,并可在枚举类型中定义任何数量的常量。如:
enum Direction
{
north=1,
south=1,
east=2,
west=3
};//注意有分号
从中可以看到,在一个枚举类型中,两个或者更多的以命名常量可接受同一个int值,如果不指定任何数值,枚举类型的标识符就会被自动指派一系列连续的值,这些值是从0开始,如:
enum Direction
{
north=0,
south=1,
east=2,
west=3
};
他等价于:
enum Direction
{
north,south,east,west
};
如果你只部分初始化,如
enum Direction
{
north=1,south,east=-3,west
}
那么south将获得值2,west将获得值-2。
7、switch
执行一个switch语句时,会在多个分支中选择一个,具体由关键字switch之后的圆括号中提供的一个控制表达式来决定,switch语句的控制表达式必须返回以下值之一:布尔值、enum常量、某种整数类型、或者一个字符。
break语句由break语句加上分号组成,