【C语言】 if 语句和 switch 语句的详解以及举例

if 语句 和 switch 语句

C语⾔是结构化的程序设计语⾔。
这⾥的结构指的是顺序结构、选择结构、循环结构
下面我们讲的是分支结构。
1.if 语句👩🏻👩🏻👩🏻
最简形式、一般形式、嵌套if、复杂逻辑判断举例、if…else注意事项。
2.switch 语句👶🏻👶🏻👶🏻
switch语法形式、case与default的顺序问题。
3.学成后:👩🏻‍🦲👩🏻‍🦲👩🏻‍🦲

一、if 语句详解

1. 最简形式

if(表达式)
    语句;

表达式为,则执行语句,表达式为假,则不执行语句。
在这里插入图片描述
例1:(最简形式)输⼊⼀个整数,判断是否为奇数。

#include <stdio.h>
int main()
{
 int num = 0;//初始化
 scanf("%d", &num);//输入一个整数
 if(num % 2 == 1)
 //判断if的表达式是否为真,判断余数是否为1
 //即num除以2,再取模(取余数),%是取模的意思
 printf("%d 是奇数\n", num);//执行这条语句
 return 0;
}

❤🔆在C语⾔中,0为假,⾮0表⽰真
也就是表达式的结果如果是0,则语句不执⾏
表达式的结果如果不是0,则语句执⾏

2. 一般形式

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

在这里插入图片描述
例2:(一般形式)输入一个整数,判断它是奇数还是偶数。

#include <stdio.h>
int main()
{
	int num = 0;//初始化
	scanf("%d", &num);//输入一个数
	if (num % 2 == 1)//判断括号里面的表达式是否为真
	//即表达式:num除以2,再取模(取余数)
	//余数=1,表达式成立则为真
		printf("%d 是奇数\n", num);//若表达式为真,则输出打印num是奇数。
	else//否则
		printf("%d 是偶数\n", num);//表达式为假,则输出打印num是偶数
	return 0;
}

注意:如果我们要if语句同时控制2条及以上语句,怎么办呢?
那就要使⽤ {} 将代码括起来,else 后也可以跟上⼤括号

3. 嵌套if

if else 语句中
else 可以与另⼀个 if 语句连⽤,构成多重判断。

居中
例3:(嵌套if)要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。

#include <stdio.h>
int main()
{
 int num = 0;
 scanf("%d", &num);
 if(num == 0)//判断整数是否为零。
 	printf("输⼊的数字是0\n");
 else if(num > 0) 
 //若不为零,再用if来再次判断整数是否大于零
 //这⾥的if 相当于嵌套在els语句中,形成了嵌套结构
 	printf("输⼊的数字是正数\n");//大于零则执行这条语句
 else
 	printf("输⼊的数字是负数\n");//否则就只剩一种情况:小于零
 return 0;
}

4. 复杂逻辑判断

例4:
输⼊⼀个⼈的年龄
如果年龄<18岁,打印"少年"
如果年龄在18岁⾄44岁打印"⻘年"
如果年龄在45岁⾄59岁打印"中⽼年"
如果年龄在60岁⾄89岁打印"⽼年"
如果90岁以上打印"⽼寿星"
在这里插入图片描述

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)//判断年龄是否小于18
		printf("少年\n");//小于18则执行这条语句
	else//若大于等于18
	{
		if (age <= 44)//判断年龄是否在18至44之间
		{
			printf("青年\n");//在18至44之间则执行这条语句
		}
		else//若大于44
		{
			if (age <= 59)//判断年龄是否在45至59之间
				printf("中老年\n");//在45至59之间则执行这条语句
			else//若大于59
			{
				if (age <= 89)//判断年龄是否在60至89之间
					printf("老年\n");//在60至89之间则执行这条语句
				else//若大于89
					printf("老寿星\n");//则在90岁及以上
			}
		}
	}
	return 0;
}

5. if…else 注意:

如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配
如图所示:
在没有{}的情况下,else与上面最近的 if 匹配。
即是在第一个if里面的嵌套if…else。两个图的代码代表一个意思。

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

二、switch语句详解

switch 语句是⼀种特殊形式的 if…else 结构,⽤于判断条件有多个结果的情况。

1. 语法形式

根据表达式 expression 不同的值,
执⾏相应的 case 分⽀。
如果找不到对应的值,就执⾏ default 分⽀。

2. 使用case注意事项

1.case必须是整型表达式分支
2.case 和后边的数字之间必须有空格
3.每⼀个case语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。

switch (expression)//必须是整型表达式 
{
 	case value1: 
 		statement;
 		break;
 	case value2: 
 		statement;
 		break;
 	default: 
 		statement 
 	//case中都没有对应值,就默认default
}

例1:输⼊⼀个1~7的数字,打印对应的星期⼏

输⼊:1 输出:星期⼀
输⼊:2 输出:星期⼆
输⼊:3 输出:星期三
输⼊:4 输出:星期四
输⼊:5 输出:星期五
输⼊:6 输出:星期六
输⼊:7 输出:星期天

#include <stdio.h>
int main()
{
 int day = 0;
 scanf("%d", &day);
 switch(day)//day是一个确定的数
 {
 	case 1//若day是1,执行下面语句
 		printf("星期⼀\n");
 		break;//停止,跳出switch语句
 	case 2:
 	//若day是2,执行下面语句
 		printf("星期⼆\n");
 		break;//停止,跳出switch语句
 	case 3:
 	//若day是3,执行下面语句
 		printf("星期三\n");
 		break; //停止,跳出switch语句
 	case 4:
 		printf("星期四\n");
 		break; 
 	case 5:
 		printf("星期五\n");
 		break;
 	case 6:
		 printf("星期六\n");
 		break;
 	case 7:
 		printf("星期天\n"); 
 		break;
 	default:
 	//不是星期1-7,则默认是输入错误
 		printf("输入错误\n");
 		break;
 	}
 return 0;
 }
题目变化:

星期1-5 输出工作日,星期6-7 输出休息日.

#include <stdio.h>
int main()
{
 int day = 0;
 scanf("%d", &day);
 switch(day)//day是一个确定的数
 {
 	case 1case 2:
 	case 3:
 	case 4:
 	case 5:
 		printf("工作日\n");//星期1-5都是工作日
 		break;
 	case 6:
  	case 7:
		printf("休息日\n");//星期六星期天是休息日
 		break;
 	default:
 	//不是星期1-7,则默认是输入错误
 		printf("输入错误\n");
 		break;
 	}
 return 0;
 }

3. switch语句中的case和default的顺序问题

其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。不过我们通常是把 default 语句放在最后处理

以上就是关于分支结构的总结,完结撒花🧡💛💚💙💜🤎🖤。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值