【c++】【基础】【primer_plus】【第六章】 分支与逻辑运算符
if语句
如果括号里的条件判断语句的值为true,则执行该分支的代码块,否则不执行该分支的代码块。
1 | if(test) statement; |
1 | if(test) { statement_1; } |
1 | if(test_1) { statement_1; } |
逻辑表达式与关系表达式
所谓逻辑表达式,便是与、或、非三门,用以判断一条语句是真值true还是假值false。
所谓关系表达式,便是大于、等于、小于三种,用以判断两变量之间的大小(或其他)关系,其结果也为true或false。
逻辑或(or)的符号为||。只有在两者都是false的时候结果才为false,即只要有一个为true结果便为true。
1 | bool res = a > b || a > c; |
逻辑与(and)的符号为&&。只有在两者都是true的时候结果才为true,即只要有一个为false结果便为false。 ;'
1 | bool res = a > b && a > c; |
逻辑非(not)的符号为!或~。返回与当前取相反的值,即当前为true则返回false,反之亦然。
1 | bool res = !a; |
优先级
||和&&运算符的优先级低于关系运算符(>、=、<)。而!运算符则高于关系运算符(>、=、<)。
同时&&高于||运算符。
其关系运算符与逻辑运算符的优先级如下所示。
1 | or < and < 关系(> = <) < not |
三目条件运算符
1 | int res = a > 0 ? a : 0; |
意思是如果a>0为true,则返回冒号前面的a,否则返回后面的0。
判断字符类型
我们可以使用c++库里的<cctype>头文件来确定字符的类型。
isalpha(ch)判断是否为字母。
isdigit(ch)判断是否为数字。
isspace(ch)判断是否为空格。
ispunct(ch)判断是否为标点。
isupper(ch)判断是否为大写,toupper()转为大写。
islower(ch)判断是否为小写,tolower()转为小写。
isalnum(ch)判断是否为字母或数字。
switch语句
switch语句根据某个值(一般为整型或者枚举)进行枚举,选择执行其中的某个或者某些case。条件分支大于3个以上时推荐使用。每一个case都可以使用break跳过。但是没有break的将继续执行后面的语句。
swich通常在最后有一个default分支,表示前面的所有case都不等于条件值,当然前面没有break跳出的话也有可能会流动到default分支上进行。
1 | switch (int_expr) { // 值为整数的表达式 |
1 | switch(gender) { |