控制流大法决

控制流大法决

  • 一、语句与程序块
  • 二、if-else 语句
  • 三、else-if 语句
  • 四、switch 语句
  • 五、while 循环与 for 循环
  • 六、do-while 循环
  • 七、跳转语句 break 与 continue 
  • 八、无限制跳转语句 goto 与标号

一、语句与程序块

 一般以分号结尾的是语句、以一个或多个语句用花括号括起来的是复合语句,即程序块。


二、if-else 语句

if-else 语句用于条件判定,语法如下:

if (表达式)
    语句1
else
    语句2

else 部分是可选的。
语句行为:
 先计算表达式的值,最终得到非零数值为真,执行语句1;表达式为零为假,执行语句2。
因为 else 部分可选的,if-else 语句嵌套时容易出现歧义,else 的匹配原则:
else 与最近的  if  没有匹配到的 esle if 部分进行匹配,花括号可以决定她是其他语句还是if控制语句部分。

三、else-if 语句

这是多路判定语句,语法如下:

if(表达式)
    语句
else if (表达式)
     语句
else if (表达式)
    语句
else if (表达式)
    语句
else
    语句

 else 部分是可选的,可默认情况或检测上述条件均不成立的情况。
语句行为:
表达式会依次求值,直到某个条件成立立即终止整个语句,或以上均不成立执行可选部分。


四、switch 语句

switch 语句用于多路判定,语法如下

switch (表达式)
     case 常量表达式:语句序列
     case 常量表达式:语句序列
     default :语句序列

 default 标号可选的——标号就是跳转目标地点。当 case 标号的常量表达式都与表达式不匹配,默认执行 default 的语句序列,如果没有 default 也没有匹配值什么也不做。
语句行为:
 switch 中的表达式与其中某个 case 标号的常量表达式相匹配,就从当前位置依次执行,直到遇到 break 跳转语句跳出 switch ,常量表达式不能相同。


五、while 循环与 for 循环

 while 和 for循环都是先测试终止条件,再执行循环体。
while 循环语句:
while (表达式)
       语句

语句行为:
首先求表达式值,非零为真,执行循环体语句,其值为零为假不执行循环语句退出 while 循环。
for 循环语句:
for (表达式1;表达式2;表达式3)
               语句

语句行为:
首先,执行表达式1,只执行一次;之后执行表达式2,是否为真;再根据表达式2是否为真来判定循环语句和表达式3依次执行。之后的循环在表达式2、语句和表达式3中依次执行,直到表达式为假,跳出循环。

六、do-while 循环

 先执行循环语句,再测试条件是否要继续执行下去。语法如下:
do
     语句
while (表达式);
语句行为:
先执行循环语句,再根据表达式条件是否为真决定是否继续循环。不管条件怎么样,至少执行一次循环。

七、跳转语句 break 与 continue 

 break 语句用在循环和 switch 语句中,使其不经条件立即跳出语句,如有嵌套,只能一层层的跳出。
continue 语句只用在循环中,使其在循环体内跳过之后的语句,立即执行圆括号内的该执行的表达式。

八、无限制跳转语句 goto 与标号

 goto 是一个跳转语句,搭配标记跳转位置的标号。标号是由标识符(名字一般命名规则,如变量)加冒号英文“:”构成的。语法如下:
标号:
goto 标号名;
标号:

语句行为:
标号和 goto 语句作用域在函数内,标号不能同名,可以在函数内任意能出现的位置。 用她做循环:
#include <stdio.h>
/* 可以自行更改递增值 */
int main()
{	
	int i;
	i = 0;
	loop:
	/* 递增步长 */
	i = i + 1;
	printf ("%d\n",i);
	if (i < 100)
		goto loop;
	return 0;
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值