ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

初识分支语句

2022-02-21 19:03:35  阅读:122  来源: 互联网

标签:语句 case int break 初识 printf day 分支


在认识分支语句之前先搞清楚什么是语句?

语句:C语言中用一个分号隔开的就是一条语句,比如printf("hehe");

一、if else分支语句

如下代码

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


int main()
{
	int age =10;//分支语句默认只执行一句话
	if (age >= 18)
		printf("成年\n");
	else
		printf("未成年\n");
	return 0;
}

输出如下

如果这时候再这样打印并输出代码

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


int main()
{
	int age =20;//分支语句默认只执行一句话
	if (age >= 18)
		printf("成年\n");
	else
		printf("未成年\n");
	printf("不能谈恋爱\n");
	return 0;
}

输出结果如下

可以看见我们希望看见的结果并不是这样,怎么样变成自己希望的样子呢?这时我们需要加上一个大括号使其变成一个代码块。代码如下

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


int main()
{
	int age =20;//分支语句默认只执行一句话
	if (age >= 18)
		printf("成年\n");
	else
		{
        printf("未成年\n");
	    printf("不能谈恋爱\n");
        }
	return 0;
}

 输出结果如下

 所以说,若想分支语句执行多条语句,需要加上大括号使其变成一个代码块。

二、switch分支语句

switch语句也是是一种分支语句,常常用于多分支的情况。

如果这时我想要实现在键盘输入数字1;就可以在屏幕上显示星期一;以此类推至星期天

我输入代码如下

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
			printf("星期一\n");
			
	case 2:
		    printf("星期二\n");
			
	case 3:
		    printf("星期三\n");
			
	case 4:
		    printf("星期四\n");
			
	case 5:
		    printf("星期五\n");
			
	case 6:
		    printf("星期六\n");
			
	case 7:
		    printf("星期天\n");
			
	}
	return 0;
}

现在我输入1,看其结果如下

 这时再输入数字2试试看,其结果如下

 出现上述情况是因为,输入1之后就按照case语句顺序执行了,并没有停止的意思,所以就将case1-7的语句全部实现了。

那么应该如何实现上述语句呢?

这时在每个case语句后加上break试试看。

代码变更如下

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
			printf("星期一\n");
			break;
	case 2:
		    printf("星期二\n");
			break;
	case 3:
		    printf("星期三\n");
			break;
	case 4:
		    printf("星期四\n");
			break;
	case 5:
		    printf("星期五\n");
			break;
	case 6:
		    printf("星期六\n");
			break;
	case 7:
		    printf("星期天\n");
			break;
	}
	return 0;
}

其输入数字1的输出结果如下

可以看见在每个case语句后加上break就可以实现上述语句了。
所以如果想实现真正的“分支”就要在每个case语句后加上“break”。

再实现一个程序:现在希望输入数字1-5时屏幕会出现“工作日”,输入数字6-7屏幕会出现“休息日”。
其代码实现如下

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	}
	return 0;
}

其输出结果如下


 但是现在我输错了数字,我现在输入了数字8会怎么样呢?
输入数字8结果如下

可以看见,输入了数字8程序并不会报错,但是我想输入1-7以外的数字就显示输入错误,这时怎么办呢?
这时我们引入了default语句,看引入default语句代码会如何运行

更新代码如下

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	default:
		printf("输入错误\n");
		break;
	}
	return 0;
}

输出结果如下


可以看见引入default关键字就解决了上述问题。
 

 

 

标签:语句,case,int,break,初识,printf,day,分支
来源: https://blog.csdn.net/mangoppju/article/details/123053106

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有