C语言之分支语句

分支语句的作用:

分支语句也叫选择语句,生活中我们总会遇到许多的选择,有许多岔路口,你会怎么选择?在C语言中也会有同样的问题,我们可能面临不同的情况需要做出不同的判断,那么就需要学习一下C语言中的分支语句了。分支语句可以给我们更多的选择来选取合适的路径以解决问题,增加程序的灵活性,适应性。

分支语句的实现:

1.if else语句

if语句是C语言中出场率极高的语句,他的语法如下     

 a.单一if的语句: 
#include <stdio.h>
int main()
{
	   if (判断条件)
	   {
		     条件成立时执行的语句;
	   }
	// {}可以不写,不写只会执行if后边第一条语句,如果执行一条以上则需用{ };
	//实际举例如下
	int girlfriend;//女朋友数量
	scanf("%d", &girlfriend);	//输入女朋友的数量
	if (girlfriend > 10)//判断,如果大于10个,算你厉害
	{
		printf("算你厉害");
	}
		return 0;
}

if后()内为判断条件,其表达式结果为0则为假,不执行if后{ }内的语句或者第一条语句(只有一条语句没带{ }时),表达式的值为1,则为真,执行后边语句。

    b.if else语句:
int main()
{
	//    if (判断条件)
	//   {
	//	     条件成立时执行的语句;
	//   }
	// {}可以不写,不写只会执行if后边第一条语句,如果执行一条以上则需用{ };
	
	int girlfriend;//女朋友数量
	scanf("%d", &girlfriend);	//输入女朋友的数量
	if (girlfriend > 10)//判断,如果大于10个,算你厉害
	{
		printf("算你厉害");
	}
	else   //如果没有大于10个,即if不成立,则执行else,即我不觉得你很厉害
	{
		printf("我不觉得你很厉害");  
	}
		return 0;
}

与单一的if语句不同的时,if else语句if的判=判断条件不成立时,会执行else后边的语句。

如下例子,菱形框内为判断条件,成立则买牛肉面,不成立则执行else饿肚子

#include <stdio.h>
int main()
{
	int money;
	scanf("%d", &money);	//兜里余额
	if (money> 10)           //兜里钱大于10块,视为有钱,牛肉面10块一碗
	{
		printf("吃饱啦");  //兜里有钱,买牛肉面
	}
	else      //若兜里的钱少于10块执行else
	{
		printf("饿死了");  //没钱饿肚子
	}
		return 0;
}

if else可以嵌套使用,但是一般为了简洁,会更简练的写成如下方式

   


从if开始,先判断if后边的表达式,若为真,则执行,后边的else if  和  else不在执行,若不满足,则从上往下判断,遇到成立的判断条件,则会执行其后边的语句,else前边所有判断的条件都不满足时会执行else

#include <stdio.h>
int main()
{
	int month;
	scanf("%d", &month);	//输入月份,范围为1-12
	if (month >= 1 && month <= 3)          //1月到三月为春季
	{
		printf("春季");
	}
	else  if(month >3 && month <= 6)    //3月到6月为夏季
	{
		printf("夏季"); 
	}
	else  if (month > 6 && month <= 9)    //6月到9月为秋季
	{
		printf("秋季");
	}
	else                                 //上边都不成立则为冬季
	{
		printf("冬季");
	}
		return 0;
}

2.switch语句

        若变量x与某一条case后的常量相等,则执行其对应的语句,执行后若无跳出语句break,会按照顺序往下执行,知道最后一条case执行结束,结束switch语句即变量x与常量相等的地方为语句执行的入口。

switch (变量x)      
{
	case 常量1:     
	   语句1;  
    //每条语句后可加break,起到终止switch语句的作用      
	case 常量2:     
	   语句2;
	case 常量3:
	   语句3;
		......
	case 常量n:
       语句n;
}

若加上转向语句break,则执行完一条语句后会结束switch,这条语句后的case语句将不再执行,达到对号入座的效果,加不加break取决于解决什么问题,请看如下例子

#include <stdio.h>
int main()
{
	int age;//输入年龄
	scanf("%d", &age);
	switch (age)//属于的年龄与case后边的进行比较
	{
	case  16:
		printf("属猪");
		break;
	case  17:
		printf("属狗");
		break;
	case  18:  
		printf("属鸡");  //若输入age为18,则会执行本条语句
		break;           // 执行完后执行break,跳出switch,
	case  19: 
		printf("属猴");
		break;
	case  20:
		printf("属羊");
		break;
	case  21:
		printf("属马");
		break;
	default:           //若输入的年龄不在16-21,即与上边都不相等,那就执行default
		printf("我不知道");
		break;
	}
		return 0;
}

其中default的作用与if语句中的最后一条else类似。

大家可以自行研究一下不加break的效果,思考一下可以解决那些问题。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值