原创力文档c语言程序设计第五章,C语言程序设计第五章分支结构及循环结构.docx...

第五章分支结构和循环结构

【学习目标】

本章将详细介绍在 C语言中如何进行流程控制。 主要包括分支语句、 循环语句、流程跳转语句等。本章的学习要点包括如下几点:

1) if 分支语句。

2) switch 多分支语句。

3) while 循环语句。

4) do-while 循环语句。

5) for 循环语句。

6)流程跳转语句。

【学习导航】

本章的在整个课程中的位置如图5-1 所示。

图 5-1本章学习导航

任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下

一行一行地执行,中间没有任何判断和跳转。如图5-2 所示。

如果 main 方法多行代码之间没有任何流程控制,则程序总是从上向下依次执行,排在前面的代码先执行,排在后面的代码后执行。这意味着:如果没有流程控制,方法里的语句是一个顺序执行流,从上向下依次执行每条语句。但是,当我们需要根据不同的情况来有选择的做一些操作时,顺序结构就不能满足要求了,这时

候就需要分支结构出马了!

图 5-2顺序结构语句的执行流程

5.1 分支结构

迄今为止,我们编写的程序都是按顺序从main 方法的第一行执行到最后一行。但现实

世界中有些情况是在必须满足一定条件下才发生的,比如一个学生能拿奖学金必须满足每门

课程在 75 分以上。选择语句的基本功能是使程序在不同的情况下,执行不同的代码。这样

程序就不单只是顺序执行了,可以按照预先定好的逻辑执行不同的流程(比如满足条件A

就执行流程 A ,满足条件 B 就执行流程 B )。 C 语言中有两种选择语句: if 语句和 switch 语句。

5.1.1 if 语句

简略形式

基本的 if 语句的语法为:

if (表达式 )

{

程序代码块 ;//如果表达式为真,就执行这段代码

}

if语句的作用是:当圆括号里的表达式返回值为真,则程序会执行花括号里面的程序

代码块。如果表达式值为假,则不会执行花括号里的程序代码块。其执行流程可以参考图

5-3。

图 5-3基本 if 条件语句的执行流程

现在我们用这种写法来完成【课堂案例5-1】。

【课堂案例5-1 】在学生成绩管理系统中,需要对学生的成绩进行管理,请编写程序来根据

学生的成绩给出相应信息:60 分以上为“及格”,否则不显示。

【案例目标】会使用简略 if 语句

【案例知识要点】简略 if 语句的写法、表达式的运用。

【案例程序代码】simpleIf.c

1 #include

main()

{

int score=65;

if(score>=60)

{

8printf("及格 \n");

}

}

【案例代码说明】

第 4 行定义了一个变量 score,初始化为 65,用来保存学生成绩。

第 6 行,系统会计算关系表达式“ score>=60”的值,返回为 true,所以会执行花括号里

的输出语句,程序的输出结果如图5-4:

图 5-4 Simple.c 程序输出结果

试一试(一):

如果修改一下程序的第4 行,将 score 的值改为 50,再运行。程序的执行结果是怎样的

呢?

说明 :因为这时系统在计算第6 行的表达式的值为false,所以 不会 执行花括号里的代码。

最终 main 方法执行完后没有任何输出信息。

试一试(二):

将程序代码的第7 行和第 9 行的花括号删除,再运行。程序的执行结果是怎样的呢?

说明: 如果程序代码块只有一条语句,则可以省略{} (但不推荐这种写法,参见下面的【规

则 5-1】)。但 if 语句或 else 语句的程序代码块中包含多条语句,则必须放在花括号{} 内。

编程规范:

【规则 5-1】 if、 for、 do、while 语句自占一行,且if、 for 、 do、 while 等语句的执行语句部

分无论多少都要加括号{} 。

试一试(三):

下面的代码片段会输出什么结果?

1 #include

main()

{

int i = 0;

if(i != 0 )

i = i + 5;

7i = i + 10;

8printf("%d\n",i);

9 }

上面的程序并没有任何语法错误,所以是可以编译成功并执行的。可能有读者会以为输

出结果是 0,因为程序第 5 行的表达式返回值显然为 false。所以后面的代码是不会执行的。但是不执行的代码只有第 6 行,第 7 行是会执行的。 因为在 if 后面没写 {} 的情况下, if 的作用范围只有 if 后面的第一条语句。从这个例子可以看出,这种写法存在一定的误导,所以良好的编程规范是:即使 if 后面只有一条语句,也要用 {} 括起来。【课堂练习】

编写程序判断输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值