《C编程技巧:117个问题解决方案示例 》 —2 控 制 语 句

举报
华章计算机 发表于 2020/02/12 14:19:35 2020/02/12
【摘要】 本节书摘来自华章计算机《C编程技巧:117个问题解决方案示例 》 一书中第2章,第2.1节,作者是希里什·查万(Shirish Chavan),卢涛 译。

第2章

控 制 语 句

本章介绍利用控制语句的功能来解决问题的方法。C包含种类丰富的控制语句。C中的控制语句大致可分为三类。

选择语句:选择语句用于在几个计算机控制流中选择其一。选择语句有两种:if-else和switch。

迭代语句:迭代语句用于有限次地重复执行一组语句。迭代语句有三种:while、do-while和for。

跳转语句:跳转语句有四种,即break、continue、goto和return。通常,计算机控制从源代码中前面的语句顺序流到下一个语句。当你需要绕过此顺序流,并让计算机控制从一个语句跳转到另一个语句(不一定是连续语句)时,可以使用跳转语句。

goto语句用于跳转到同一函数中的另一个语句。continue语句仅用于迭代语句中。break语句仅用于迭代或switch语句中。return语句用于函数中。

2.1 求1到N的整数的总和

问题

你希望开发一个以交互方式计算1到N的整数的总和的程序。

解决方案

编写一个C程序,使用以下规格说明计算1到N的整数的总和:

程序使用for循环执行1到N的整数的总和。for循环没有什么特殊的,你也可以使用while循环或do-while循环,但在这些类型的程序中,for循环是优选的。

程序要求用户输入数字N(0<N<30 000)。如果用户输入该范围之外的数字N,则程序要求用户重新输入数字。

当计算的总和显示在屏幕上时,程序会询问用户是否要计算另一个总和或退出。

代码

以下是使用这些规格说明编写的C程序的代码。在文本编辑器中键入以下C程序并将其保存在C:\Code文件夹下名为sum.c的文件中:

 image.png

 

编译并执行此程序。此程序的一次运行结果如下所示:

 image.png

工作原理

包含在LOC 16~18中的for循环执行1~N的整数的求和。在此程序中使用具有两层嵌套的do-while循环。只要用户未能在指定范围内输入数字N,内部do-while循环就会将用户保持在循环内。只要用户想要再次执行求和,外部do-while循环就会将用户保持在循环内。内部do-while循环增加了此程序的稳健性。

除了for循环之外,还可以使用while或do-while循环来执行求和。要使用while循环执行求和,请使用以下代码行替换LOC 16~18:

 image.png

要使用do-while循环执行求和,请将LOC 16~18替换为以下代码行:

 image.png

 

编写循环的终止条件时要小心。轻率地编写循环的终止条件是bug的发源地。

■注意 bug围绕边界值“游荡”。

例如,查看此处给出的for循环:

 image.png

乍一看,你可能认为这个for循环执行100次迭代,但实际上,它只执行99次迭代。因此,在处理边界值时要小心。

源代码中的错误是bug。发现和纠正源代码中的错误的过程称为调试(debug)。

编程专家能够创建具有最少数量的可能bug的程序,并且还知道如何调试程序。编写一个完全没有bug的小程序是可能的,但是由数千代码行组成的专业程序永远不会没有bug。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。