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

从0开始的编码生活(分支)

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

从0开始的编码生活(分支)


前言:前段时间因为博主在校的事情过多,在文章的更新上有所怠慢,在接下来的时间里,我会尽快更新,尽早补上之前的文章。好了,言归正传,我们生活中肯定会遇到各种各样的选择,同样在c语言的学习,我们在编写代码时也会遇到分支选择,为了解决这个问题,c语言中的分支语句为我们轻松解决这个问题。


标题1:分支if语句

分支中最基本的分支就是分为两个分支,if语句就是用来解决二分支问题或者三分支等三分支问题。例如简单的比较两个不相等的数字大小的程序

除了运用三目运算符

#define _CRT_SECURE_NO_WARNINGS  1
#include 
int main()
{
	int a = 0, b = 0;
	scanf("%d %d", &a, &b);
	int max = (a > b ? a : b);
	printf("max=%d", max);
	return 0;
}

我们也可以使用if语句来判断

#define _CRT_SECURE_NO_WARNINGS  1
#include 
int main()
{
	int a = 0, b = 0;
	int max = 0;
	scanf("%d %d", &a, &b);
	if (a < b)
	{
		printf("max=%d", b);
	}
	else
	{
		printf("max=%d", a);
	}
	return 0;
}

if语句在使用时要牢记带上大括号,如果没有大括号,if语句只会引领紧跟他的下面一条语句,

除了上面的情况外,if语句的不规范书写也可能会造成“悬空else”的问题

#define _CRT_SECURE_NO_WARNINGS  1
#include 
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
			printf("hehe");
	else
		printf("haha");
	return 0;
}

这个代码就是典型的悬空else,造成这个悬空else就是因为代码风格不好,对于缩进和大括号的把握不好,但如果改成下面的这个样子就清晰多了


标题2:分支switch语句

平时简单的判断用if语句就可以实现判断,但是,生活中的判断并不会那么简单,例如星期几的判断,当然这个代码也可以用if语句解决

#define _CRT_SECURE_NO_WARNINGS  1
#include 
int main()
{
	int day = 0;
	scanf("%d", &day);//输入1-7,表示从星期一到星期天
	if (day == 1)
		printf("今天是星期一");
	else if (day == 2)
		printf("今天是星期二");
	else if (day == 3)
		printf("今天是星期三");
	else if (day == 4)
		printf("今天是星期四");
	else if (day == 5)
		printf("今天是星期五");
	else if (day == 6)
		printf("今天是星期六");
	else if (day == 7)
		printf("今天是星期天");
	return 0;
}

但这样的代码书写起来,太过麻烦。这时就可以用switch 语句

#define _CRT_SECURE_NO_WARNINGS  1
#include 
int main()
{
	int day = 0;
	scanf("%d", &day);//输入1-7,表示从星期一到星期天
	switch (day)
	{
	case 1:
	{
		printf("今天是星期一");
		break;
	}
	case 2:
	{
		printf("今天是星期二");
		break;
	}
	case 3:
	{
		printf("今天是星期三");
		break;
	}
	case 4:
	{
		printf("今天是星期四");
		break;
	}
	case 5:
	{
		printf("今天是星期五");
		break;
	}
	case 6:
	{
		printf("今天是星期六");
		break;
	}
	case 7:
	{
		printf("今天是星期天");
		break;
	}
	}
	return 0;
}

 case后面的值的顺序并没有从小到大,或者是从大到小的规定,只是为了让代码有序,才选择一种顺序进行排序

注意:switch()里的一定是一个整形表达式,而这里的case相当于是一个个入口,当switch()里的整形表达式满足哪个case后面的值(这里的值也一定要是整形常量)时,程序从哪进去开始运行直到结束,不信可以运行一下下面的代码

 

#define _CRT_SECURE_NO_WARNINGS  1
#include 
int main()
{
	int day = 0;
	scanf("%d", &day);//输入1-7,表示从星期一到星期天
	switch (day)
	{
	case 1:
	{
		printf("今天是星期一");
	}
	case 2:
	{
		printf("今天是星期二");
	}
	case 3:
	{
		printf("今天是星期三");
	}
	case 4:
	{
		printf("今天是星期四");
	}
	case 5:
	{
		printf("今天是星期五");
	}
	case 6:
	{
		printf("今天是星期六");
	}
	case 7:
	{
		printf("今天是星期天");
	}
	}
	return 0;
}

如果是浮点型的话,绝对不能使用switch语句

default子语句

default语句的作用是默认,即当switch语句中case语句后面的整型常量都不能满足switch()里的整型表达式的值时,就会执行default语句后面的代码。例如:

#define _CRT_SECURE_NO_WARNINGS  1
#include 
int main()
{
	int day = 0;
	scanf("%d", &day);//输入1-7,表示从星期一到星期天
	switch (day)
	{
	case 1:
	{
		printf("今天是星期一");
	}
	case 2:
	{
		printf("今天是星期二");
	}
	case 3:
	{
		printf("今天是星期三");
	}
	case 4:
	{
		printf("今天是星期四");
	}
	case 5:
	{
		printf("今天是星期五");
	}
	case 6:
	{
		printf("今天是星期六");
	}
	case 7:
	{
		printf("今天是星期天");
	}
    default:
    {
        printf("输入错误,请输入1-7的数字n");
        break;
    }
	}
	return 0;
}

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

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

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