爱上C语言:分支与循环(分支篇)多个if与if — else if区别

前言
作者:阿辉不一般
你说呢:生活本来沉闷,但跑起来就有风
专栏:爱上C语言
作图工具:draw.io(免费开源的作图网站)
请添加图片描述

如果觉得文章对你有帮助的话,还请点赞,关注,收藏支持博主,如有不足还请指点,博主及时改正,感谢大家支持!!!

文章目录

  • if语句
    • 1.单分支if
    • 2.多分支if语句
    • 3.多个if与if -- else if 区别
  • switch 语句

if语句

1.单分支if

  • 单分支if的语法结构
if(表达式)
{
	代码块 code;
}

这里我使用流程图的方式为大家展示

爱上C语言:分支与循环(分支篇)多个if与if — else if区别_第1张图片

#include
int main()
{
//单分支
	int age = 0;
	scanf("%d", &age);
	if (age >= 18)
	{
		printf("成年\n");
	}	
	return 0;
	
}

计算机在处理if语句时,一般要先判断if()中表达式的真假再执行下一步
那计算机是如何判断真假的呢?
计算机将0判断为假,将非0判断为真
例如,上述代码中如给age输入8,则age >= 18为假,就不会执行if里面的语句,从而不会打印成年


2.多分支if语句

  • 多分支if语法结构
if(表达式)
{
	代码块 code;
}
else if(表达式)
{
	代码块 code;
}
else if(表达式)
{
	代码块 code;
}
......
else
{
	代码块 code;
}

如同人生不止一个选择,同样的if语句也有多个分支

爱上C语言:分支与循环(分支篇)多个if与if — else if区别_第2张图片

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age >= 18)
	{
		printf("成年\n");
	}
	else
	{
		printf("未成年\n");
	}

	return 0;
}

简单解释一下,上述代码如若if中表达式为真则执行if内语句为假则执行else内语句
上面呢仅仅是双分支,当然你也可以无限套娃

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age >= 18 && age < 35)
	{
		printf("成年\n");
	}
	else if (age >= 35 && age < 60)
	{
		printf("中年\n");
	}
	else if (age >= 60 && age < 90)
	{
		printf("老年\n");
	}
	else if (age >= 90)
	{
		printf("老寿星\n");
	}
	else
	{
		printf("未成年\n");
	}

}


3.多个if与if – else if 区别

细心的小伙伴已经发现这个标题不一般,没错这个是重点
这里我用代码为大家解惑

爱上C语言:分支与循环(分支篇)多个if与if — else if区别_第3张图片

在上述多个if代码中,给age输入23屏幕上既打印了青少年又打印了成年
而在if-- else if 代码又是如何呢?我们接着往下看

爱上C语言:分支与循环(分支篇)多个if与if — else if区别_第4张图片

if-- else代码中我们依然给age输入23,与多个if不同的是它仅仅打印了青少年
第一次的时候我也懵逼了,其实呢在多个if语句中计算机会每一个if语句都判断一下,只要条件为真if后面的语句都会执行,而在if-- else if语句中只要一个else if判断为真,其后面所有的else if 语句都不会在判断了


switch 语句

在C语言中并非只有if语句是分支语句,它还提供了switch语句
if语句在分支过多情况下用起来极为不便,而switch语句则弥补了这一缺点

  • switch的语法结构
switch(表达式)
	{ 
	    case 常量表达式1:  语句1;
	    case 常量表达式2:  语句2;
	    …… 
	    case 常量表达式n:  语句n;
	    default:  语句n+1;
	}

注意:

  • switch后面只能跟整形表达式
  • case后面只能跟整形常量表达式

当a的值与case后的值一样时,就执行对应case后的语句

爱上C语言:分支与循环(分支篇)多个if与if — else if区别_第5张图片

#include

int main()
{
	int a = 0;
	scanf("%d", &a);
	switch (a)
	{
	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");
	default://当没有找到入口,就走这一条
		printf("输出错误\n");
	}
	return 0;
}

运行上述代码

爱上C语言:分支与循环(分支篇)多个if与if — else if区别_第6张图片

你会发现输出的结果并非所愿,这是因为当程序从case 3:进去后并没有跳出switch语句,这个时候你就需要break的帮助了

爱上C语言:分支与循环(分支篇)多个if与if — else if区别_第7张图片

是不是输出想要的答案了

✌️一些见解

  • if,else if以及else后语句尽量用{ }括起来
  • else总是与它最近的if相对应
  • case语句后面记得跟break

本篇文章到此结束,铁子们下期见!
爱上C语言:分支与循环(分支篇)多个if与if — else if区别_第8张图片

你可能感兴趣的:(爱上C语言,c语言)