C语言分支语句详解

本文详细讲解了C语言中的if语句,包括单分支和多分支结构,强调了使用代码块的必要性,并通过例题解析了if语句的匹配规则。同时,介绍了switch语句的结构和用法,通过示例解释了如何控制流程和使用break。此外,还提供了一些练习题目帮助巩固学习。
摘要由CSDN通过智能技术生成

前言

今天一起来学习C语言第七弹
在C语言的学习中,语句尤为重要。以下是对C语言分支语句的部分详解


一、if语句的详解

  1. if语句中单分支结构的语法结构及代码详解
    单分支结构:表达式结果为真则执行语句,表达式结果不成立则不执行。

在这里插入图片描述

在这里插入图片描述

  1. if语句中多分支结构的语法结构及代码详解
    多分支结构表达式1成立,则语句1执行,表达式2成立,则语句2执行。除此之外多分支结构可以加多个else if。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. if语句注意点
    执行多条语句,应该使用代码块。

在这里插入图片描述
正确如下:
在这里插入图片描述

4.练习
例题1:
答案:什么都没有输出。
在这里插入图片描述注意:当出现两个if时,else 是和距离它最近的if进行匹配。
但当出现以下情况时,else就不是和距离它最近的if进行匹配
其次if(a==1)不能写成if(a=5);
可以写成if(1 ==a),这样当写成if(1=a)时就会报错。

在这里插入图片描述
例题2:输出1~100之间的奇数

for循环写法
#include<stdio.h>
int main()
{
	int a = 0;
	for (a = 0; a <= 100; a++)
	{
		if (a % 2 == 1)
			printf("%d ", a);
	}
	return 0;
}


while循环写法
1.
#include<stdio.h>
int main()
{
	int a = 0;
	while (a <= 100)
	{
		if (a % 2 == 1)
			printf("%d ", a);
		a++;
	}
	return 0;
}
2.不用if语句
#include<stdio.h>
int main()
{
	int a = 1;
	while (a <= 100)
	{
			printf("%d ", a);
		a+=2;
	}
	return 0;
}

二、swith语句的详解

1.switch语句的结构

代码如下(示例):

switch(整形表达式)
{
   语句项(是一些case语句)
   如:
   case 整形常量表达式:
     语句;
}

2.switch语句具体代码示例

代码如下(示例):

int main()
{
	int day = 0;
	scanf_s("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期1\n");
	case 2:
		printf("星期2\n");
	case 3:
		printf("星期2\n");
	case 4:
		printf("星期4\n");
	case 5:
		printf("星期5\n");
	case 6:
		printf("星期6\n");
	case 7:
		printf("星期7\n");
	default:
		printf("输入错误\n");
		break;
	}
	return 0;
}

当输入一个值时,假设输入4,则会输出星期4 星期5 星期6 星期7。因为输入4,4之前的不执行而后面的并没有停止所以会从星期4到星期7直到程序结束。如果只想输出一个星期4,则需要加上break,就会停止。

#include<stdio.h>
int main()
{
	int day = 0;
	scanf_s("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期1\n");
		break;
	case 2:
		printf("星期2\n");
		break;
	case 3:
		printf("星期2\n");
		break;
	case 4:
		printf("星期4\n");//当然也可以只在这里加上break
		break;
	case 5:
		printf("星期5\n");
		break;
	case 6:
		printf("星期6\n");
		break;
	case 7:
		printf("星期7\n");
		break;
	default:
		printf("输入错误\n");
		break;
	}
	return 0;

如果default语句在所有case最后,此时可以不加break 如果default语句之后还有case语句,如果不加break,则default语句执行过之后会继续下面的case语句,此时必须要在default之后加break语句,不过这种default用法是不推荐的,default顾名思义是缺省情况,只有任何条件都不匹配的情况下才会执行,所以应该将default语句放在所有case结束之后。

#include<stdio.h>
int main()
{
	int day = 0;
	scanf_s("%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;
}

当输出一样时可以如上图写法。

  1. switch语句中的注意事项
    switch(是整形表达式)例如short、char、int、long整数类型和枚举类型
    case 必须是整形常量表达式:
float day=0;//这种形式就是错误的
switch(day)
{
case 1.0//这种形式就是错误的不是整形
case n//这种形式也是错误的不是常量
}
  1. 练习
    答案:m=5,n=3在这里插入图片描述
    解析:因为开始n=1进入switch语句,先执行case 1是m++所以m变成3,再执行case 2是n++所以n变成2,然后执行case 3再次进入switch语句,n=2所以执行case 2语句,m++,n++所以m n分别变成4和3,经过break,跳出case 3中的switch语句,执行case 4所以m++,m变成5然后经过break跳出switch语句

总结

以上就是今天要学习的内容,本文仅仅简单介绍了C语言中分支语句。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小沈YO.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值