分支循环 1.0

循环语句

C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实。 我们可以使⽤ if 、 switch 实现选择结构,使⽤ for 、 while 、 do while 实现循环结构。

1, if语句循环

if循环语句的语句结构为:

if (表达式)
    语句

在这里的,表达式相当于判断语句,如果表达式的结果为真(非0),则执行“语句”代码;表达式的结果为假(0),则不执行“语句”代码。

例子1.1:输⼊⼀个整数,判断是否为奇数

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

注意:建议初始化为0.一个局部变量不初始化的时候,它的默认值是随机值,所以当对这个值进行计算的时候,未来如何变化,不好追踪。

2, else

如果某件事,不是a,就是b。这种情况我们就用if…else…语句。
该语句的语句结构为:

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

例子2.1:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印偶数。

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

3, 分支中包含多条语句(变成复合语句)

一般情况下 if 语句只能控制⼀条语句,就是语句1 :if语句为真,则打语句1;if语句为假,则不打印。
那如果我们要if语句同时控制2条语句,怎么办呢?那就要使⽤ {} 将代码括起来,
else 后也可以跟上⼤括号。(风格尽量统一,if与else都要用{}大括号)。如
例子3.1:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数并打印可以除二,否则打印偶数并打印不可以除二。

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

4, 嵌套if

在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。
例子4.1:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。

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

这里在else语句中嵌套了if语句,如:在这里插入图片描述
这里也可以这样表达:

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

else后面一般不加条件,else if 一般要加条件。

当然,这里也可以这样表达:

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

列4.2:输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:⾮正数。

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

列4.3:输入年龄
如果年龄 < 18岁,打印"少年"
如果年龄在18岁⾄44岁打印"⻘年"
如果年龄在45岁⾄59岁打印"中⽼年"
如果年龄在60岁⾄89岁打印"⽼年"
如果90岁及以上打印"⽼寿星"

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("少年");
	else
	{
		if (age <= 44)
			printf("青年");
		else
		{
			if (age <= 59)
				printf("中老年");
			else
			{
				if (age <= 89)
					printf("老年");
				else
					printf("老寿星");
			}
		}
	}
	return 0;
}

缩减后可为

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("少年");
	else if (age <= 44)
		printf("青年");
	else if (age <= 59)
		printf("中老年");
	else if (age <= 89)
		printf("老年");
	else
		printf("老寿星");
	return 0;
}

也可以这样表达

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("少年");
	if (18 <= age && age<= 44)
		printf("青年");
	if (45 <= age && age<= 59)
		printf("中老年");
	if (60 <= age && age<= 89)
		printf("老年");
	if (age >= 90)
		printf("老寿星");
	return 0;
}

注意:
条件判断:在C语言中,不能直接使用

if18 <= age <= 44//错误

**这样的表达式来判断年龄是否在某个范围内。这会导致逻辑错误。正确的做法是分开判断,**例如

if (18 <= age && age <= 44)//正确

5, 悬空else问题

如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值