if语句使用

 1、if 语句

if语句的语法如下:

if (表达式)

    语句;

if语句中表达式成立为真,则语句执行,表达式不成立为假,则语句不执行。表达式可以是常量表达式,也可以是变量表达式。在c语言中,0表示假,非0表示真。

比如:

#include<stdio.h>
int main()
{
	int a = 2;
	if(a)
		printf("hello world\n");
	if(2)
		printf("hello world\n");
	return 0;
}

上面代码两个 if 表达式中,使用了变量a和常量2,所以表达式成立为真,对 if 后面的语句执行打印

 

#include<stdio.h>
int main()
{
	int a = 0;
	if(a)
		printf("hello world\n");
	if(0)
		printf("hello world\n");
	return 0;
}

上面代码表达式为0为假,所以 if 后面语句不执行

if语句执行流程 

我们可以通过if语句去判断一个数是奇数还是偶数,例如:输入一个整数,判断是奇数还是偶数

#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if(num % 2 == 1)
		printf("%d是奇数\n", num);
	if(num % 2 == 0)
		printf("%d是偶数\n", num);
	return 0;
}

 上面代码判断一个整数是奇数还是偶数用两个if语句有点麻烦,其实还有更简洁的书写形式。


2、if else 语句 

if....else....语句了,语法形式如下

if (表达式)

        语句1;

else

        语句2;

输入一个整数,判断是否为奇数,如果是奇数打印奇数,否则打印偶数 

#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if(num % 2 == 1)
		printf("%d是奇数\n", num);
	else
		printf("%d是偶数\n", num);
	return 0;
}

if....else语句执行流程

分支中包含多条语句,默认在 if 和 else 语句中默认都只控制一条语句,比如:

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age>=18)
		printf("成年了\n");
		printf("可以去工作了\n");
	return 0;
}

 上面代码,你会发现输入的值不管是>=18,还是小于18,“可以去工作了”都会打印。这是因为if 表达式为真打印后面第一条语句后,再接着打印第二条语句。当表达式为假的时候只打印第二条语句。

如果用大括号将 if 语句后面两个语句括起来会怎样呢?

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age >= 18)
	{
		printf("成年了\n");
		printf("可以去工作了\n");
	}
	return 0;
}

这时我们可以看到当表达式为真时,if 语句执行大括号内的两条语句,表达式为假时则不执行。所以 if 语句后面跟多条语句的话,那就使用{ }将代码括起来。

同理 else 后跟多条语句也一样。

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age >= 18)
	{
		printf("成年了\n");
		printf("可以去工作了\n");
	}
	else
	{
		printf("未成年\n");
		printf("好好学习\n");
	}
	return 0;
}

 

if 语句嵌套的使用,构成多重判断。比如:输入一个整数判断是0,还是正式或者负数。 

代码如下:

#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num == 0)
		printf("为%d\n", num);
	else if (num > 0)
		printf("%d为正数\n",num);
	else
		printf("%d为负数\n",num);
	return 0;
}

这是在 else 中嵌套了一个 if....else 语句,当然我们也可以在if中进行嵌套。

比如下面代码:

输入一个整数,如果是正数,在判断是奇数还是偶数,并输出。如果不是正数则输出非正数。

#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num > 0)
	{
		if (num % 2 == 0)
			printf("为偶数\n");
		else
			printf("为奇数\n");
	}
	else 
		printf("为非正数\n");
	return 0;
}


 

悬空 else,如果有多个 if 和 else, else 总是跟最接近的if匹配。比如下面代码:

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 8;
	if (a == 6)
		if (b == 8)
			printf("yes\n");
	else
		printf("no\n");
	return 0;
}

可以看到上面代码什么都没打印,因为它默认跟第二个 if 匹配,是嵌套在第一个 if 中的,因为第一个 if 表达式为假,所以没执行后面语句。

代码相当于这样

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 8;
	if (a == 6)
	{
		if (b == 8)
			printf("yes\n");
		else
			printf("no\n");
	}
	return 0;
}

如果我们要 else 和第一个 if 匹配的话,可以这样修改代码: 

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 8;
	if (a == 6)
	{
		if (b == 8)
			printf("yes\n");
	}
		else
			printf("no\n");
	return 0;
}

所以我们在写代码的时候,在该用大括号的地方应适当的使用大括号,这样代码的逻辑就会更加的清晰,代码可读性就越高。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值