C语言笔记2--控制流

来源:互联网 发布:藤井莉娜淘宝 编辑:程序博客网 时间:2024/05/18 01:07
C语言笔记2--控制流


总论:

程序语言中的控制流语句用于控制各计算操作执行的次序。


if - else 语句
if - else 用于条件判定。 如:
if(表达式){     语句序列1;}else{     语句序列2;}

其中else部分是可选的。 

该语句执行时,先计算表达式的值,如果其值为真(即表达式的值为非0),则执行表达式1;

如果其值为假(即表达式的是为0),并且该语句包含else部分,则执行语句2。

注:

因为if - else语句的else部分是可选的,所以在嵌套的 if 语句中省略它的 else 部分将导致歧义。

解决的方法是将每个 else 与最近的前一个没有 else 配对的 if 进行匹配。良好的程序代码的缩进结构可以体现出来。


else - if 语句

下面if 语句结构,是编写多路判定最常用的方法。如:
if(表达式){     语句序列;}else if(表达式){     语句序列;}else if(表达式){     语句序列;}else{     语句序列;}
其中的各表达式将被一次求值,一旦某个表达式结果为真(即表达式值为非0),则执行与之相关的语句,并终止整个语句序列的执行。

注:

最后else 是可选的,用于处理 “上述条件均不成立” 的情况或默认情况,该部分也可以用来检查错误,以捕获“不可能”的条件。


switch 语句

switch 语句是一种多路判定的语句,它测试表达式是否与一些常量整数值中的某一个匹配,并执行相应的分支动作。如:
switch 语句,先计算表达式的值, 并逐个与其后的常量表达式值相比较(每个分支都由一个或多个整数值常量或常量表达式标记),当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
switch (nSqlID){     case RUBILL_QUERY_BY_TYPE:     case RUBILL_QUERY_ALL:          语句序列;          break;     case RUBILL_INSERT:          语句序列;           break;     case RUBILL_DELETE:          语句序列;          break;             default:          语句序列;          break;}
注:  
在switch 语句中,case的作用只是一个标记。因此,某一个分支中的代码执行完后,程序将进入下一分支继续执行,除非在程序中显示的跳转break;
在case后的各常量表达式的值不能相同,否则会出现错误。
在case后,允许有多个语句,可以不用{}括起来。
各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

不要忘记最后那个default分支。即使程序真的不需要default处理,也应该保留语句   default : break; 这样做并非多此一举,而是为了防止别人误以为你忘了default处理。(default子句可以省略不用)

break语句将导致程序的执行立即从switch语句中退出,正常情况下每个分支后都加一个break语句结束,否则将导致多个分支重叠(除非有意使多个分支重叠)。


while循环 与 for 循环

while 循环语句,如:
while(表达式){     语句序列;}
首先求表达式的值,如果其值为真(非0),则执行语句序列,并再次求该表达式的值,这一循环过程一直进行下去,直到该表达式的值为假(0)为止,随后继续执行语句后面的部分。


for 循环语句,如:

for(表达式1; 表达式2 ;表达式3){     语句序列;}
它等价于下列whlie语句:
表达式1;while( 表达式2 ){     语句序列;     表达式3;}

注:

for 循环语句的3个组成部分都是表达式,最常见的情况是,表达式1与表达式3是赋值表达式或函数调用,表达式2是关系表达式。

这3个组成部分中的任何部分都可以省略,但分号必须保留。

如果在for语句中省略表达式1和表达式3,它就退化成了while循环语句。如果省略测试条件,即表达式2,则认为其值永远是真值,需要借助其他手段(如break语句或return语句)才能终止执行。


do - while 语句

do - while 语句的语法形式,如:
do{     语句序列;}while(表达式);</span>
首先执行循环体中的语句部分,然后再求表达式的值,如果表达式的值为真(非0),则再次执行语句,依此类推; 当表达式的值变为假(0),则循环终止。
注:do - while 循环则在循环体执行后测试终止条件,这样循环体至少被执行一次。


break 语句与continue 语句

break 语句可用于从for、while与do - while 等循环体中提前退出,就如同从switch 语句中提前退出一样。如:
int trim(const s[]){     int n;     for( n = strlen(s) - 1; n >= 0; n--)     {          if(s[n] ==' ')          {                break;          }     }     s[n + 1] = '\0';     return n;}

continue 语句用于使for、while与do - while语句开始下一次循环的执行,continue 语句只用于 循环语句,不用于switch语句。

注: 在while与do - while语句中,continue 语句的执行意味着立即执行测试部分;在for 循环中,则意味着使控制转移到递增循环变量部分。


goto 语句
C语言提供了可随意滥用的goto语句以及标记跳转位置的标号。
注:
标号的命名同变量命名的形式相同,标号的后面要紧跟一个冒号。
标号可以位于对应的goto语句所在函数的任何语句的前面。
标号的作用域是整个函数。C语言笔记2--控制流



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我的手机被偷了怎么办 医保卡不能用了怎么办 招行u盾丢了怎么办 信用卡刷爆了要怎么办 办分期的卡丢了怎么办 房贷银行卡掉了怎么办 房贷银行卡丢了怎么办? 行驶证丢了怎么办补办 行驶证丢了怎么办异地 浦发信用卡盗刷怎么办 苹果id被盗变砖怎么办 信用卡丢了被刷怎么办 ins注册不了怎么办安卓 偷玩电脑被发现怎么办 做作业不认真的怎么办 老人脑供血不足怎么办 哺乳期吃了辣的怎么办 孕32周胎位臀位怎么办 怀孕32周胎位不正怎么办 7个月胎位不正怎么办 胎心监护老不过怎么办 8个月了胎位不正怎么办 怀孕八个月了胎位不正怎么办 怀孕八个月胎位不正怎么办 欠债的人跑了怎么办 赌博输了100万怎么办 我赌博输了4万怎么办 办80张信用卡怎么办的 19岁负债十几万怎么办 欠了十几万该怎么办 网贷负债十几万怎么办 赌博欠了十几万怎么办 欠了网贷跑了会怎么办 欠银行钱还不起怎么办 欠小额贷款公司的钱还不上怎么办 负债30万没工作怎么办 华为p9耗电太快怎么办 酷派手机反应慢怎么办 网上买手机被骗了怎么办 买手机贵了怎么办12315 在手机店被骗了怎么办