if-else
语句
if-else
语句的基本语法:
if (test-condition)
{
true_statements
}
else
{
false_statements
}
?:
运算符
?:
语句的基本语法:
expression1 ? expression2 : expression3
这里, expression2
和expression3
是一个表达式,因此最后生成的是一个值,可以赋给其他变量或放到另一个更大的表达式中。
它等价于:
if(expression == true)
{
SOMETHING = expression2;
}
else
{
SOMETHING = expression3;
}
例如,取两个数字中大的一个,可以写为:
int a = 4, b = 5;
int maxnum = (a > b) ? a : b;
逻辑表达式
逻辑表达式包括逻辑OR运算符||
、逻辑AND运算符&&
、逻辑NOT运算符!
。
逻辑运算符和优先级
逻辑运算符||
和&&
的优先级均低于关系运算符。所以a > b || b > c
被解释为(a > b) || (b > c)
。
逻辑运算符!
的优先级高于关系运算符。所以!ch > 2
会被解释为(!ch) > 2
;如果需要先比较大小,再将其取反需要写为!(ch > 2)
。
逻辑运算符&&
的优先级高于逻辑运算符||
,因此age > 30 && age < 45 || weight > 300
被解释为(age > 30 && age < 45) || weight > 300
。
switch
语句
基本语法:
switch (integer-expression)
{
case lable1: statement1; break;
case lable2: statement2; break;
case lable3: statement3; break;
...
case lable_n: statement_n; break;
default: statement;
}
integer-expression
的值必须是一个整数值或者char
字符。
如果没有匹配任何标签,执行default
后的语句。
break
语句
标签匹配只是告诉程序从哪里开始,而break
语句可以让程序明白进行到哪里结束。
比如,如果程序匹配到了第二个标签,在不设置break
标记时,程序会从statement2
一直执行到statement_n
。
利用break
的特性,可以形成多个参数匹配一条语句的列表。比如:
char ch;
cin >> ch;
switch (ch)
{
case 'a':
case 'A': cout << "You chose the first one.\n"; break;
case 'b':
case 'B': cout << "You chose the second one.\n"; break;
default: cout << "You chose nothing.\n";