第 7 章 C控制语句:分支和跳转

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 语句导致程序控制跳转到由指定标签定位的语句。/*最好不用*/

猜你喜欢

转载自blog.csdn.net/Mr__Gold/article/details/83817331