选择结构程序设计

if语句

实现两个分支的选择结构

语句结构

一般形式(3中):

  1. if(表达式)
    语句;
  2. if(表达式)
    语句1;
    else
    语句2;
  3. //多分支
    if(表达式1)
    语句1;
    else if(表达式2)
    语句2;
    else
    语句3;

第一种实例:

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age<18)
	{
		printf("未成年\n");
	}
}

运行结果:
输入小于18的数,则显示未成年

第二种实例:

#include <stdio.h>
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
    else
   {
        printf("成年\n");
   }
}

运行结果:
输入小于18的数,则显示未成年
输入大于等于18的数,则显示成年

第三种实例:

#include <stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age<18)
	{
		printf("少年\n");
	}
	else if (age >= 18 && age<30)
	{
		printf("青年\n");
	}
	else if (age >= 30 && age<50)
	{
		printf("中年\n");
	}
	else if (age >= 50 && age<80)
	{
		printf("老年\n");
	}
	else
	{
		printf("老寿星\n");
	}

}

运行结果:
输入小于18的数,则显示少年
输入大于等于18且小于30的数,则显示青年
输入大于等于30且小于50的数,则显示中年
输入大于等于50且小于80的数,则显示老年
输入其他的数,则显示老寿星

如果表达式的结果为真,则语句执行
在C语言中0表示假,非0表示真

if语句的嵌套

if (表达式)
{
	//内嵌if
	if (表达式)
	{
		语句列表1}
	else
	{
		语句列表2}
}
else
{
	//内嵌if
	if (表达式)
	{
		语句列表1}
	else
	{
		语句列表2}
}

else的匹配:else是和它离的最近的if匹配的。

switch语句

switch语句是多分支选择语句

switch(整型表达式)
{
语句项;
}

语句项:
是一些case语句:
case 整形常量表达式:
语句;

switch允许嵌套使用
switch(整型表达式)
{
case :
switch (整型表达式)
{
语句项;
}
}

在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。

#include <stdio.h>
int main()
{
	int day = 0;
	switch (day)
	{
	case 1:
		printf("星期一\n");
		break;
	case 2:
		printf("星期二\n");
		break;
	case 3:
		printf("星期三\n");
		break;
	case 4:
		printf("星期四\n");
		break;
	case 5:
		printf("星期五\n");
		break;
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期天\n");
		break;
	}
	return 0;
}

结果:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日

switch 语句必须遵循下面的规则:

  1. switch 语句中的表达式是一个常量表达式,必须是一个整型或枚举类型。
  2. 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
  3. case 的常量表达式必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
  4. 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
  5. 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
  6. 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,将会继续进行后面的 case,直到遇到 break 为止。
  7. 一个 switch 语句可以有一个可选的 default子句,出现在 switch 的结尾。default子句可用于在上面所有 case 都不为真时执行一个任务。default子句中的 break 语句不是必需的。
  8. 每个switch语句中只能出现一条default子句。但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。

例如:

#include<stdio.h>//头文件

int main()
{
	int n = 1;
	int m = 2;
	switch (n)
	{
	case 1:
		m++;
	case 2:
		n++;
	case 3:
		switch (n)
		{//switch允许嵌套使用
		case 1:
			n++;
		case 2:
			m++;
			n++;
			break;
		}
	case 4:
		m++;
		break;
	default:
		break;
	}
	printf("m = %d, n = %d\n", m, n);
	return 0;
}

结果:
m=5, n=3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值