7.1 if 语句
if 语句被称为分支语句或选择语句,其一般形式为:
if(expression)
statement
若 expression 为真,执行 statement;否则,跳过该语句。statement 可以是单个语句也可以是复合语句。
7.2 在if 语句中添加 else 关键字
7.2.1 if else 语句
if else 语句使用户可以在两个动作之间进行选择,其一般形式为:
if(expression)
statement1
else
statement2
若 expression 为真,执行 statement1;否则,执行 statement2。语句可以是单个语句也可以是复合语句。
7.2.2 多重选择:else if
else if 可以扩展 if else 结构来适应两个以上的选择情况,其一般形式为:
if(expression)
statement1
else if(expression)
statement2
else
statement3
若 expression1 为真,执行 statement1;若 expression1 为假而 expression2 为真,执行 statement2;否则,执行 statement3。语句可以是单个语句也可以是复合语句。在编译器的限制范围内,可以把多个所需的 else if 语句连成一串使用。
7.2.3 else 与 if 配对
else 与 if 配对规则:若没有花括号指明,else 和与它最接近的一个 if 相匹配。
7.2.4 多层嵌套的 if
7.2.2所示的是嵌套 if 的一种形式,这是从一系列的二选一中进行选择的。当进行了特定的选择后又导致额外的选择时将使用另一种嵌套 if。例:一个程序可能用 if else 在男和女之间选择,在 if else 的每个分支中可能包含另一个 if else 来区别不同收入群体。
7.2.5 getchar() 和 putchar()
getchar()函数没有参数,它返回来自输入设备的下一个字符;putchar()函数打印它的参数。
ch = getchar(); /*读取下一个输入字符并赋给变量 ch */
putchar(ch); /*将先前赋给 ch 的值作为字符打印出来*/
7.2.6 ctype.h 系列字符函数
ctype.h 头文件包含一系列标准的函数,可以用来分析字符。这些函数接受一个字符作为参数,如果该字符属于某特定的种类则返回非零值(真),否则返回零(假)。
7.3 获得逻辑值
逻辑运算符 | ||
运算符(传统写法) | 含义 | iso646.h |
&& | 与 | and |
|| | 或 | or |
! | 非 | not |
逻辑表达式是从左到右求值的。一旦发现有使表达式为假的因素,立即停止求值。&&和||运算符是序列的分界点 ,在程序从一个操作数前进到另一个操作数之前,所有的副作用都会生效。例如:
while(x++ <10 && x + y <20)
&&是序列分界点,保证在对右边表达式求职之前,先把 x 的值加 1。
7.4 条件运算符 ?:
条件预算符 ?: 是C中唯一的一个三元运算符,条件表达式的一般形式为:
expression1 ? expression2: expression3 /*条件表达式*/
若 expression1 为真,条件表达式的值等于 expression2 的值;若 expression1 为假,条件表达式的值等于 expression3 的值。
7.5 多重选择:switch 和 break
switch (expression)
{
case lablel1:
statement1 /*可选*/
break; /*可选*/
case lablel2:
statement2 /*可选*/
break; /*可选*/
default: /*可选*/
statement3 /*可选*/
}
圆括号中的 switch 判断表达式应具有整数值(包括 char 类型)。case 标签必须是整型(包括 char)常量或整数常量表达式。程序按照 expression 值跳转到相匹配的 case 标签处,然后程序流程继续通过所有剩余的语句,直到再次由 break 语句重定向。如果没有与 expression 值相匹配的 case 标签,那么控制定位到标签为 default 的语句。否则,控制传递 switch 的下一条语句。
7.6 循环辅助手段:continue、break、goto
7.6.1 continue 语句
continue 语句可以与三种循环形式中的任一种一起使用,但不能和 switch 语句一起使用。它导致程序控制跳过循环中的剩余语句。对于 while 和 for 循环,开始下一个循环周期;对于 do while 循环,对退出条件进行判断,若必要,开始下一个循环周期。
7.6.2 break 语句
break 语句可以与三种循环形式中的任一种以及 switch 语句一起使用。它导致程序控制跳过包含它的循环或 switch 语句的剩余部分,继续执行紧跟在循环或 switch 后的下一条命令。
7.6.3 goto 语句
goto 语句导致程序控制跳转到由指定标签定位的语句。/*最好不用*/