第六章 分支语句和逻辑运算符 第六章 分支语句和逻辑运算符
6.1 if 语句
If 语句首先测试条件,如果条件为true,if 语句将引导程序执行语句或语句块,如果条件为false,程序将跳过这条语句或语句块。
If 语句的语法:
if (test-expression) statement
整个if语句被是为你一条语句,与while一样,statement或者为一条语句,或者为花括号括起来的语句块。
6.2 if else 语句
If else 语句让程序决定执行两条语句或语句块的哪一条。
If else 语句的语法:
if (test-expression) statement1 else statement2
6.3 if else if else 语句
当连用if else 语句时,可以使用下面的格式:
if (test-expression1) statement1 else if (test-expression2) statement2 else
6.4 逻辑表达式
6.4.1 逻辑或运算符
逻辑或运算符为||,当两个逻辑表达式有一个为true时,结果为true,否则为false。
6.4.2 逻辑与运算符
逻辑与运算符为&&,当两个逻辑表达式有一个为false时,结果为false,否则为false。
6.4.3 逻辑非运算符
逻辑非运算符为!,当逻辑表达式为true时,结果为false,否则为true。
6.4.4 逻辑运算符细节
||和&&运算符的优先级都低于关系运算符。
||运算符的优先级低于&&运算符。
!运算符的优先级高于所有的关系运算符和算术运算符。
尽管知道运算符的优先级,还是应该尽量使用括号。这样不仅可以防止错误,还可以增强代码的可读性。
6.5 ? : 运算符
条件运算符(? :)常用语代替if else语句。是C++唯一一个三目运算符(即接受3个操作数)。格式如下:
test_expression ? true_case_expression : false_case_expression
如果test_expression为true,则执行true_case_expression,否则执行false_case_expression。
6.6 switch语句
Switch语句的格式如下:
switch (integer_expression) { case label1: statement(s) case label2: statement(s) ... default: statement(s) }
这里integer_expression必须是整型的表达式。
每个label都必须是整型常量表达式(可以是字面值、枚举量、常量等)。如果integer_expression不匹配任何label,则跳入default标签。Default标签是可选的,如果被省略,而又没有匹配的标签,程序将跳出switch语句。C++中的case标签如果被匹配,将继续执行之后的所有语句,包含剩余标签内的语句。要使程序执行完一组特定的语句之后停止,必须使用break语句。
小提示:如果既可以使用if else语句,也可以使用switch语句,当选项不少于3个,应当使用switch语句。
6.7 break和continue语句
在switch语句或者循环体中使用break语句,将使程序跳出switch或者循环体。Continue语句使用于循环体,让程序跳过循环体余下的代码,开始新一轮的循环。在while语句中,立即执 行下一次条件测试,在for循环中,先执行update_expression,再执行test_expression。