栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言】分支语句——if语句、switch语句

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言】分支语句——if语句、switch语句

1. if语句 1.1 语法结构

if (表达式)
    语句;

if (表达式)
    语句1;

else
    语句2;

if (表达式1)
    语句1;

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

...

else if (表达式n)

    语句n;

else
    语句n+1;

1.2 演示代码
#include 

int main()
{
	int age = 0;
	scanf("%d", &age);

	if (age < 18)
	{
		printf("未成年n");
		printf("不能饮酒n");
	}//if控制多条语句要用{}括起来

	return 0;
}
#include 

int main()
{
	int age = 0;
	scanf("%d", &age);

	if (age < 18)
	{
		printf("未成年n");
		printf("不能饮酒n");
	}
	else
		printf("成年n");

	return 0;
}
#include 

int main()
{
	int age = 0;
	scanf("%d", &age);

	if (age <= 6)
		printf("童年n");
	else if(age>=7 && age<=17)
		printf("少年n");
	else if (age >= 18 && age <= 40)
		printf("青年n");
	else if (age >= 41 && age <= 65)
		printf("中年n");
	else
		printf("老年n");

	return 0;
}
1.3 else悬空的问题
#include

int main()
{
	int a = 0;
	int b = 2;

	if (a == 1)
		if (b == 2)
			printf("hehen");
	else
		printf("hahan");

	return 0;
}
//什么都不输出,没有{}的约束下else和离它最近的if匹配
#include

int main()
{
	int a = 0;
	int b = 2;

	if (a == 1)
	{ 
		if (b == 2)
			printf("hehen");
	}
	else
		printf("hahan");

	return 0;
}
//输出haha
1.4 判断一个数是奇数还是偶数
#include

int main()
{
	int num = 0;
	scanf("%d", &num);

	if (num % 2 == 1)
		printf("奇数n");
	else
		printf("偶数n");

	return 0;
}
1.5 输出1~100之间的奇数
#include

int main()
{
	int i = 1;

	while (i <= 100)
	{
		if (i % 2 == 1)
			printf("%d ", i);
		i++;
	}

	return 0;
}
2. switch语句 2.1 语法结构

switch(整型表达式)
{

    case 整形常量表达式1:

        语句1;

        break;

    case 整形常量表达式2:

        语句2;

        break;

    ...

    case 整形常量表达式n:

        语句n;

        break;

    default:

        语句n+1;

        break;

}

switch(整型表达式)
{

    case 整形常量表达式1:

    ....

    case 整形常量表达式a:

        语句1;

        break;

    case 整形常量表达式a+1:

    ....

    case 整形常量表达式b:

        语句2;

        break;

    ....

    case 整形常量表达式c:

    ....

    case 整形常量表达式d:

        语句n;

        break;

    default:

        语句n+1;

        break;

}

2.2 演示代码
#include

int main()
{
	int day = 0;
	scanf("%d", &day);

	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;
		default:
			printf("输入有误,请重新输入n");
			break;
	}
	return 0;
}
#include

int main()
{
	int day = 0;
	scanf("%d", &day);

	switch (day)
	{
	    case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			printf("工作日n");
			break;
		case 6:
		case 7:
			printf("休息日n");
			break;
		default:
			printf("输入有误,请重新输入n");
			break;
	}
	return 0;
}
2.3 case穿透的问题

在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象。在不判断下一个case值的情况下,向下运行,直到遇到break,或者整体switch语句结束。

#include

int main()
{
	int day = 0;
	scanf("%d", &day);

	switch (day)
	{
	case 1:
		printf("星期一n");
	case 2:
		printf("星期二n");
	case 3:
		printf("星期三n");
	case 4:
		printf("星期四n");
	case 5:
		printf("星期五n");
	case 6:
		printf("星期六n");
	case 7:
		printf("星期日n");
	default:
		printf("输入有误,请重新输入n");
		break;
	}
	return 0;
}
//如果输入5,输出结果为:
//星期五
//星期六
//星期日
//输入有误,请重新输入
//
2.4 default子句

当switch表达式的值与所有case标签的值都不匹配时,如果没有default子句,那么所有的语句都被跳过,程序不会终止,也不会报错;如果有default子句,那么这个default子句后面的语句就会执行。

尽量在每个switch语句中都放一条default子句。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/835865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号