C语言控制语句:分支和跳转

C语言控制语句:分支和跳转

if 语句

if 语句被称为分支语句branching statement)或选择语句selection statement)。
其通用形式如下:

if(表达式) 	//如果表达式为真(非0),执行语句,否则跳过语句
	语句  	//可以是简单语句或复合语句

与 while 语句不同,if语句只能测试和执行一次

if else 语句

与if语句不同,if else 语句可以在两条语句之间做选择
其通用形式如下:

if (表达式)	//如果表达式为真(非0),执行语句1,否则执行语句2
	语句1	//可以是简单语句或复合语句
else
	语句2	//可以是简单语句或复合语句

当表达式为真时,执行语句1,表达式为假,执行语句2。
然而,实际情况通常会不止两种语句,于是当出现三个及以上,还可以用else if 扩展 if else 语句,形式如下:

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

不难看出,else if 就是 if else 的变式,逻辑没有发生变化,当然,表达式还可以有更多的 else if (不能超出编译器的限制范围)。

在使用 if else 时需要注意的一点是 else 和 if 的配对
例如如下代码:

scanf("%d",&n);
if(n>5)
	if(n<10)
		printf("%d\n",n*n);
else
	printf("%d\n",n);
		

上面的 else 是与第一个 if 匹配还是与第二个匹配?
如果你不清楚其中的规则,那么你可能会认为 else 是与第一个 if 匹配,事实上,else 是与第二个 if 匹配
输入输出结果如下:

1		None
6		36
11		11

规则是,若没有花括号,else 与它最近的 if 匹配,除非最近的 if 被花括号括起来

switch 语句

switch 语句和多个 if else 语句的作用基本相同,通常二者可以可以互换,但是,大多数情况下使用 switch 语句更方便。
其通用形式如下:

switch(表达式)		//表达式必须是整型表达式!( char 类型也可以)
{
	case 常量1:
	     语句
	case 常量2:
		 语句
	default :		//若没有与表达式匹配的标签,则跳转到 default 语句
		 语句
}

switch 语句通过对 switch 后面圆括号中的表达式求值,然后程序扫描 case 后面的标签列表,直到发现一个匹配的值为止,然后程序跳转到那一行,若没有与之匹配的标签,如果存在 default : 标签行,就跳转至该行,否则,就继续执行在 switch 后面的语句。
注意,switch 后面括号里表达式的值必须是一个整数值(char类型也可以)同理,case后面的常量(标签)也一样。所以,与多个 if else 语句不同,case 后面的标签只能指定一个值,不能使用一个范围,不能用变量作为 case 标签
还有一点,可以用 break 语句使程序直接离开 switch 语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值