【C语言】else 关键字

177 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第20天,点击查看活动详情

👋『大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流>』
✔「life motto」⇢ 种一棵树最好是十年前⇿其次是现在👌
📝<juejin>个人主页謓泽 的个人主页 - 文章 - 掘金 (juejin.cn)
📚<系列专栏>⇥C语言关键字🍻 - 謓泽的专栏 - 掘金 (juejin.cn)
🏆2021年度博客之星物联网与嵌入式开发TOP5 2021博客之星Top100 阿里云专家博主^星级博主 CSDN⇿掘金⇿InfoQ[创作者]

 ⑩ else ⇿ False

⒈描述⇢else 通常配合于 if 语句来进行使用。

⒉作用⇢else 用在 if 语句当中进行选中二中选一,也可以进行多段分支语句进行使用。

⒊注意⇢else 通常是 if 表达式 为假,则执行 else 语句块的内容。

示例代码如下👇

#include<stdio.h>
int main(void)
{
    int i = 0;
    if(i)
    {
        printf("泽奀1");
    }
    else
    {
        printf("泽奀2");
    }
    retturn 0;
}

代码说明⇢在上面的代码中 if() 判断语句判断变量 i 为假,因为表达式当中值为假,则执行 else 的语句块内容。

拓展知识点⇢else 的配对问题

不知道大家有没有对 if() 以及 else语句的匹配问题是否会有困惑,接下来我们就来说说它。

示例代码如下👇

#include<stdio.h>
int main(void)
{
	int x = 1;
	int y = 2;
	if (x == 10)
		if (y == 20)
			printf("你好\n");
	    else
		printf("你不好\n");
	return 0;
}
/*相当于这样如下↓
#include<stdio.h>
int main(void)
{
	int x = 1;
	int y = 2;
	if (x == 10)
	{
		if (y == 20)
			printf("你好\n");
		else
			printf("你不好\n");
	}
	return 0;
}*/

运行结果🖊

如上代码の解析⇢第一个if()条件不满足,不满足就不执行第二个if()语句的内容。那么有很多小伙伴不知道的话就会想当然的认为是打印else语句当中的内容。但是实际上它在编译器上并不会输出任何的东西。原因是因为else语句采用的是[就近原则] 所谓的就近原则 就是:在你不带花括号{}的时候,else语句离哪个if()语句越近的话永远都是和最近的if()语句进行匹配。这就是所谓的"就近原则"。那么通过这个我们就知道else语句是和if(y==20)进行匹配的,所以这里if(x==10)为假就一定不可能执行else语句,当我们吧x==10改成if(x == 1)的时候就会执行else语句当中的内容。因此一句话的总结就是else语句的匹配采用就近原则。

那么我们来看看第二个示例代码如👇

#include<stdio.h>
int main(void)
{
	int x = 1;
	int y = 2;
	if (x == 1)
		if (y == 20)
			printf("你好\n");
		else
			printf("你不好\n");
	return 0;
}

运行结果🖊

你不好

在上述代码当中我们可以知道else会采取就近原则和离近的if()语句来进行匹配,当第一个判断语句为真的时候。那么第二个判断表达式条件不满足就会不执行第二个if()语句则执行else语句当中的内容。

当然,如果你不喜欢这种的话也可以用花括号{}来编写,这样也是比较推荐的,因为更方便我们去观察让人容易读懂。示例代码如下👇

#include<stdio.h>
int main(void)
{
	int x = 1;
	int y = 2;
	if (x == 1)
	{
		if (y == 20)
		{
			printf("你好\n");
		}
		else
		{
			printf("你不好\n");
		}
		return 0;
	}
}

这种就是比较好的编程习惯推荐都带上花括号{} (o゚v゚)ノ

大家可以按照这种代码格式来写代码,好的代码风格是必要的。