Bootstrap

C生万物——无法避免的选择(分支语句)

我们知道,c语言是一种结构化的程序设计语言,所谓结构化,指的是C语言中包括了顺序结构选择结构循环结构,而把这三种结构进行组合,几乎就可以描述出我们日常生活中的所有场景

当我们以上帝视角,来俯瞰我们每一个人的人生道路时,就会发现,我们每一个的人生道路,都并非是一帆风顺;在漫长的人生道路中,更多的是,由一个个岔道口,所带来的一个个选择。

我们无法避免选择,我们无时无刻不在选择之中。

今天,我就带着大家,来看看如何在c语言的世界中,进行选择

在c语言中,我们使用分支语句来进行选择。

分支语句

  • if 语句

  • switch 语句

在正式开始介绍,我们今天的主角儿——分支语句之前,我想,大家肯定都有同样的疑惑,什么是语句呢?

c语言中有五类语句

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句

而我们今天介绍的则属于c语句中的控制语句

控制语句:
 
用于控制程序的执行流程,来实现程序的各种结构方式,它们有特定的语言定义符组成;

控制语句又可分为三类

  1. 条件判断语句: if 语句 、switch 语句
  2. 循环执行语句:do while 语句 、 while 语句 、for 语句
  3. 转向语句: break 语句 、continue 语句 、return 语句 、goto 语句

好啦,言归正传,我们开始今天的主要内容:

万能的if 语句

为什么会说if语句万能的呢?

我们来一起思考一下,每当我们走到一个人生的岔道口时,大多时候,给我们选择的,并不像非黑即白、学文学理这种二元对立问题这样简单,我们可能会面临多种选择,更有甚者,我们可能根本就没得选;

然而不管,我们面临的选择是两个、或多个,还是最惨的——没得选,if语句都可以派得上用场

句法结构

if (表达式)

        语句;

//单分支
if (score >= 60)
		printf("您的成绩及格啦\n");

if(表达式)

        语句

else

        语句;

//二分支
if (score >= 60)
	printf("您的成绩及格啦\n");
else
	printf("您的成绩没及格\n");

if (表达式)

        语句;

else if(表达式)

        语句;

else

        语句;

//多分支
if (score >= 80)
	printf("您的成绩为优秀\n");
else if (score >= 60)
	printf("您的成绩及格啦\n");
else
	printf("您的成绩没及格\n");

另外,if语句执行的条件:

如果表达式的结果,则语句执行;

在c语言世界里的真与假

0表示非0表示

还有,else的匹配: else与它最近的if语句进行匹配

专注的switch语句

何出此言呢?

switch语句不像if语句那样,可以使用于多种情形中,而常常只专注于多分支情况的使用;因为,当多分支的情况太多时,使用if……else  if……else语句,反而没有使用switch语句简洁、方便

句法结构

switch(整型表达式

{
        case 整型表达式常量:

                语句;
}

另外,我们在switch语句中,无法直接实现分支,必须搭配break的使用才能真正实现分支。

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;
	}

break语句 的实际效果是把case语句列表划分为不同的分支。

default子句的作用

当表达式的值与所有的case标签的值都不匹配时,

虽然这种情况,在c语言中并不认为是个错误,

但你也可以,在语句列表中加一条default子句,来解决,这一问题。

当switch 表达式的值并不匹配所有的case标签的时,这个default子句后面的语句就会被执行。

不得不说的编程好习惯

  • 如果分支表达式成立,要执行多条语句,应该使用代码块({} 包裹的代码)
  • 在switch语句中,最后一个case语句,最好要加上一个break语句
  • 在每个switch语句中,都放一条default子句,甚至可以在后边加一个break

写在最后

今天,我们来到C语言的世界里,学习如何进行选择;其实,编程世界中的选择与我们真实世界中的选择并无二致,每一个if语句后,都有与它对应的结果,一旦进行了输入,并按下了键盘上的回车键,便再也无法改变;

因此,我们更要珍视自己的每次选择,遵从本心,无问西东!

;