C语言入门(五)分支结构

C语言的分支结构有两种:①if-else语句②switch语句

if-else语句

一般形式如下:

if(表达式)

  语句1;

else

  语句2;


如果有多个语句,则写成

if(表达式)

{

  语句1;

  语句2;

}

else

{

  语句3;

  语句4;

}


if-else的意思是,如果if后面表达式的逻辑值为1,则执行if里的语句,如果不为1执行else里的语句。 看下面一段代码

#include<stdio.h>		
int main()
{   
	int a, b;
	a = 5, b = 6;
	if (a > b)
		b++;
	else
		a++;
	printf("a=%d,b=%d", a, b);
	return 0;
}

🎈说明:

上面的程序我给a,b两个变量赋初始值,进入if里判断a是否大于b,很明显a小于b,表达式的逻辑值为0,所以去执行else里的语句。


if语句的嵌套

看下面一段代码

#include<stdio.h>		
int main()
{   
	int a, b;
	a = 5, b = 6;
	if(a<b)
	if (a > b)
		b++;
	else
		a++;
	printf("a=%d,b=%d", a, b);
	return 0;
}

很明显,上面程序中有两个if,一个else,但记住这个else永远之和离他最近的if配对

那么上面程序的意思就是先执行判断if(a<b)如果满足则执行判断if(a>b),发现对于上面程序不满足那就执行else。

如果你问,如果第一个if我就不满足呢?那就不执行,因为没有写和第一个if配对的else。


多分支if语句

看下面一段代码

#include<stdio.h>		
int main()
{   
	int a, b;
	a = 5, b = 6;
	if (a < b)
		b = b + 3;
	else if (a > b)
		b++;
	else
		a++;
	printf("a=%d,b=%d", a, b);
	return 0;
}

执行流程:

先判断a是否小于b(a<b),如果逻辑值为1则执行b=b+3;

如果()内逻辑值不为1则往下执行判断a是否大于b。如果逻辑值为1则执行b++;

如果都不满足就执行else里的a++;


switch语句

格式

switch(表达式)

{

  case 常量表达式1:语句1;break;

  case 常量表达式2:语句2;break;

  ......

  case 常量表达式n:语句n;break;

  default:语句n+1;break;

}

✔执行流程

表达式的值=常量表达式1的值,执行语句1,然后break跳出switch语句

表达式的值=常量表达式2的值,执行语句2,然后break跳出switch语句

表达式的值=常量表达式n的值,执行语句n,然后break跳出switch语句

其他情况,执行语句n+1,然后break跳出switch语句

Q:如果不写break会怎样?

A:比如你1里面没写break,那么如果执行了语句1之后他会继续执行语句2,直到见到break,如果一直没碰到break那么他会执行完下面的所有语句。

Q:不写default可以吗?

A:当然可以,不写的话,当程序执行完switch后面的表达式,找不到对应的case语句时,他自动退出switch,执行下面的程序

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Perfectkn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值