C Primer Plus(七)

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

7.1 if语句

if语句被称为分支语句或选择语句,因为它提供了一个交汇点,在此处程序需要选择两条分支中的一条前进。一般的形式如下
               if(expression)
                  statement
如果expression为真,则执行statement,否则跳过。

if else语句的通用形式为:
              if(expression)
                  statement1
              else
                  statement2
如果expression为真,则执行statement1,否则执行statement2。
如果希望在if和else之间有多条语句,必须使用花括号创建一个代码块。

7.1.1 geichar()和putchar()

getchar()函数没有参数,它返回来自输入设备的下一个字符。ch=getchar()与scanf("%c",&ch)有相同的效果。
putchar()函数打印它的参数,putchar()与printf("%c",ch)有同样的效果。
因为这些函数仅仅处理字符,所以它们比更通用的scanf()和printf()函数更快而且更简洁。同样它们不需要格式说明符,它们只对字符起作用。

7.1.2 else

规则是如果没有花括号指明,else和它最接近的一个if相匹配。

7.2 获得逻辑性

!运算符的优先级很高。它高于乘法运算,和增量运算符的优先级相同,仅次于圆括号。&&运算符的优先级高于||,这二者的优先级都低于关系运算而高于赋值运算。
C保证逻辑表达式是从左至右求值的。&&和||运算符是序列的分界点。
&&逻辑符中,仅当左边正确,才计算右边。

7.3 条件运算符?

条件运算符是C的三元运算符的惟一的一个例子。
下面是条件表达表达式的一般形式:
expression1?expression2:expression3;
如果expression1为真,整个条件表达式的值和expression2相同,否则整个条件表达式的值和expression3相同。

7.4 循环辅助手段:continue和break

7.4.1 continue语句

该语句可以用于三种循环形式。当运行到该句时,它将导致剩余的迭代部分被忽略,开始下一次迭代。
continue的另一个用处是作为占位符。例如
                                                      while(getchar()!='\n')
                                                      continue;

7.4.2 break语句

循环中的break语句导致程序终止包含它的循环,并进行程序的下一个阶段。
如果break语句位于嵌套循环里,它只影响包含它的最里层的循环。

break语句用于循环和switch中,而continue仅用于循环。

7.5 多重选择:switch和break

switch中可以对一个给定的语句使用多重case标签。
程序控制按照expression的值跳转到相应的case标签处,然后程序流程继续通过所有剩余的语句,直到再次由break语句重定向。
expression和case标签必须都是整型值(包括类型char),并且标签必须是常量或者完全由常量组成的表达式。
如果没有与表达式值相匹配的case标签,那么控制定位到标签为default的语句。

7.6 goto语句

goto语句包括两个部分:goto和一个标签名称。
格式:
       goto label;
       .
       .
       label:statement

如果不熟悉goto,不要使用它;如果已经习惯于使用它,试着训练自己不使用。

posted on 2013-06-02 16:33  颓废的悠然  阅读(299)  评论(0编辑  收藏  举报

导航