喵呜,来啦来啦:你真的了解if,if else吗

Posted 爱吃榴莲的喵星人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了喵呜,来啦来啦:你真的了解if,if else吗相关的知识,希望对你有一定的参考价值。

目录

1.if 的执行步骤

2.if(0) 可以当注释

3.if 的错误写法

4.else 就近原则

5.else if 的两种写法

6.if else 与 if   if 的区别

7.通过“打印1000到2000之间为闰年的年份”的例子不同代码作比较


喵博主今天以上面7项内容来说说我们的if 与else:


一、if 的执行步骤

首先在C语言中,0为假,非0为真

1.先执行()中的表达式or函数,得到真假结果

2.条件 判定功能

3.进行 分支功能

接下来咱们来看看一下代码,打印结果是什么呢:

#include<stdio.h>
int main()

	int a = 0;
	if (a = 0)
	
		printf("hehe");
	
	if (a == 0)
	
		printf("haha");
	
	return 0;

结果为:

你们答对了吗?

if(a = 0)将0赋值给a,a = 0 -> if(a) ->if(0),为假所以不执行。

if(a == 0),a在开始初始化为0,所以a本来就是等于0,所以为真,打印haha。


二、if(0) 可以当注释

在代码不需要的时候,可以用if(0)注释,当然喵博主不建议拿if(0)注释,只是让大家以后看到别人如果用if(0),知道在当注释用。


三、if 的错误写法

#include<stdio.h>
int main()

	int age = 10;
	if (18 <= age < 30)
	
		printf("青年\\n");
	
	return 0;

原因是:18<=age为假=0 < 30为真,所以进入if


四、else 就近原则

下面的代码结果为什么呢?

#include<stdio.h>
int main()

	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
			printf("hehe\\n");
	else
		printf("haha\\n");
  return 0;

结果:

什么也没打印。

 原因是:else找if就近原则 

其实:代码等同于

#include<stdio.h>
int main()

	int a = 0;
	int b = 2;
	if (a == 1)
	
        if (b == 2)
			printf("hehe\\n");
	    else
		    printf("haha\\n");
    
    return 0;

五、else if 的两种写法

//第一种写法
#include<stdio.h>
int main()

	int age = 17;
	if (age < 18)
		printf("青少年\\n");
	else if (age >= 18 && age < 30)
		printf("青年\\n");
	else if (age >= 30 && age < 50)
		printf("中年\\n");
	else
		printf("老年\\n");

	return 0;


//第二种写法
int main()

	int age = 17;
	if (age < 18)
		printf("青少年\\n");
	else if ( age < 30)
		printf("青年\\n");
	else if (age < 50)
		printf("中年\\n");
	else
		printf("老年\\n");

	return 0;

//喵博主推荐用第一种,代码可读性更好

六、if else 与 if   if 的区别

看下面的代码结果是什么:

//第一个代码
#include<stdio.h>
int main()

	int age = 17;
	if (age < 18)
		printf("青少年\\n");
	else if (age >= 16 && age <= 35)
		printf("青年\\n");
	else if (age >= 30 && age < 50)
		printf("中年\\n");
	else
		printf("老年\\n");

	return 0;


//第二个代码
#include<stdio.h>
int main()

	int age = 17;
	if (age < 18)
		printf("青少年\\n");
    if (age >= 16 && age <= 35)
		printf("青年\\n");
	if (age >= 30 && age < 50)
		printf("中年\\n");
	if (age >= 50)
		printf("老年\\n");

	return 0;

                    

if else 组合是走一种判断就不走其他判断;if if 每个判断都走一遍看是否满足


七、通过“打印1000到2000之间为闰年的年份”的例子不同代码作比较

判断闰年的方法:

1、能被4整除,但不能被100整除;

2、能被400整除;

以下代码你认为那些是正确的,哪些是错误的:

//A.
#include<stdio.h>
int main()

	int y = 0;
	for (y = 1000; y <= 2000; y++)
	
		if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
		
			printf("%d ", y);
		
	
	return 0;


//B.
#include<stdio.h>
int main()

	int y = 0;
	for (y = 1000; y <= 2000; y++)
	
		if (y % 4 == 0 && y % 100 != 0)
		
			printf("%d ", y);
		
		if (y % 400 == 0)
		
			printf("%d ", y);
		
	
	return 0;


//C.
#include<stdio.h>
int main()

	int y = 0;
	for (y = 1000; y <= 2000; y++)
	
		if (y % 4 == 0)
		
			if (y % 100 != 0) 
				printf("%d ", y);
			
		
		if (y % 400 == 0)
		
			printf("%d ", y);
		
	
	return 0;


//D.
#include<stdio.h>
int main()

	int y = 0;
	for (y = 1000; y <= 2000; y++)
	
		if (y % 4 == 0)
		
			if (y % 100 != 0) 
				printf("%d ", y);
			
		
		else if (y % 400 == 0)
		
			printf("%d ", y);
		
		else
		
			;
		
	
	return 0;


//E.
#include<stdio.h>
int main()

	int y = 0;
	for (y = 1000; y <= 2000; y++)
	
		if (y % 4 == 0 && y % 100 != 0)
		
			printf("%d ", y);
		
		else if (y % 400 == 0)
		
			printf("%d ", y);
		
		else
			;
	
	return 0;

 结果:

A、

B、

 C、

 D、

 E、

 如图所示D是错的。                    喵博主用闰年2000年做栗子解释

A和B大家都明白,喵博主就在这里不解释了;C:2000先进入第一个if判断2000%4==0进入里面的if进行判断 2000%100==0所以不打印y。因为if的特点是每个if都判断,所以进入下个if判断,2000%400==0,所以打印2000;D:解释如图:

E:解释如图:

 以上就是这篇博客的全部内容,希望对大家有帮助,如果文中有错误,就和喵博主一起探讨解决,我们相互学习相互进步。

以上是关于喵呜,来啦来啦:你真的了解if,if else吗的主要内容,如果未能解决你的问题,请参考以下文章

喵呜:程序环境来啦来啦

喵呜 来啦来啦:C语言gets(),scanf()与getchar()函数的区别

干货来啦!带你初探Docker逃逸

空集有四种写法,你知道么?——常用Latex符号表来啦!

C++学习笔记

三种方式,教你优雅的替换if-else语句!