C语言:分支与循环——if else

发布时间:2024年01月17日

if语句

基本语法格式:

if(表达式)
{
    语句
}
  1. 表达式为真时(非0),开始执行语句;
  2. 表达式为假时(0),不执行。

举例:输入整数,判断奇偶性

#include<stdio.h>
//判断整数的奇偶性

int main()
{
	int input;

	while (scanf("%d",&input))
	{
		if (input%2==1)
		{
			printf("%d为奇数", input);
		}
		if (input%2==0)
		{
			printf("%d为偶数", input);
		}
	}

	return 0;
}

else

基本语法格式:

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

说明:如果满足表达式条件(为真),则执行语句1,否则执行语句2。

举例:判断是否满十八岁

#include<stdio.h>
//判断是否满十八

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

	return 0;
}

注:if和else默认控制一条语句,如果想要同时控制多条语句,则需要加上大括号将语句括起来

{ 语句 }

嵌套

在if else语句中,else可以与另一个if语句连用,构成多重判断。

举例:输入一个整数,判断所输入的数是正整数、负整数或是0。

#include<stdio.h>
//判断输入的数字为正整数、负整数或是0

int main()
{
	int input;
	while (scanf("%d", &input))
	{
		if (input == 0)
		{
			printf("输入的数字为0\n");
		}
		else if (input > 0)
		{
			printf("输入的数字为正整数\n");
		}
		else if (input < 0)
		{
			printf("输入的数字为负整数\n");
		}
	}

	return 0;
}

注:

悬空else问题

如果有多个if else语句,else语句总是和最近的if语句匹配

如下方代码块所示,最终不会输出结果。

#include<stdio.h>
//悬空else语句匹配

int main()
{
	int a = 1;
	int b = 2;
	if (a == 0)//if_1
		if (b == 2)//if_2
			printf("b");
	else//与if_2匹配,嵌套于if_1中
		printf("null");

	return 0;
}
文章来源:https://blog.csdn.net/ASHIDEH/article/details/135531153
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。