用C语言循环实现倒计时功能的3种方法及代码对比

admin 综合编程开发技术 3


你有没有试过想在程序里加个倒计时?比如考试结束前的提醒,或者游戏开始前的准备时间,用 C 语言的循环就能轻松实现。今天兔子哥就给大家带来 3 种用循环做倒计时的方法,还会对比它们的好坏,一起往下看吧!
第一种方法,用 for 循环来做,这应该是最容易想到的。你想啊,倒计时不就是从一个数慢慢减到 0 吗?for 循环刚好能控制次数。比如做个 10 秒的倒计时,就可以让 i 从 10 开始,每次减 1,直到 i 等于 0。
代码大概是这样的:
#include
#include // 用 Sleep 函数得加这个
int main () {
for (int i=10; i>=0; i--) {
printf ("倒计时: % d 秒 \n", i);
Sleep (1000); // 暂停 1000 毫秒,也就是 1 秒
}
return 0;
}

这里要注意啊,Sleep 函数在 Windows 里是大写的 S,参数是毫秒。要是在 Linux 系统上,就得用 sleep 函数,小写的 s,参数是秒,这点别搞错了。有个网友就说,他抄了代码在 Linux 上跑,结果没延时,后来才发现是函数名不对。
第二种方法,用 while 循环来实现。while 循环虽然不像 for 循环那样把初始化、条件、增量写在一行,但灵活性更高。同样是 10 秒倒计时,先定义一个变量 i=10,然后 while (i>=0) 就一直循环,里面打印 i,再让 i 减 1,最后延时 1 秒。
代码是这样的:
#include
#include
int main () {
int i = 10;
while (i >= 0) {
printf ("倒计时: % d 秒 \n", i);
i--;
Sleep (1000);
}
return 0;
}

这种方法的好处是,要是你想在循环里改倒计时的时间,比如中途让它加快,会比 for 循环方便点。但有些朋友觉得,while 循环得单独写 i--,不如 for 循环紧凑,看个人习惯吧。
第三种方法,用 do-while 循环。这种循环的特点是不管条件怎么样,至少会执行一次。做倒计时其实和 while 差不多,就是把判断条件放后面了。
代码可以这么写:
#include
#include
int main () {
int i = 10;
do {
printf ("倒计时: % d 秒 \n", i);
i--;
Sleep (1000);
} while (i >= 0);
return 0;
}

你发现没,do-while 和 while 的代码差不多,就是循环体和条件的顺序换了。那什么时候用 do-while 呢?要是你想确保倒计时至少显示一次,哪怕初始 i 是负数,用 do-while 就合适。比如 i 一开始是 - 1,while 循环就不执行了,do-while 还会执行一次。
现在来对比一下这三种方法。从代码长度看,for 循环最简洁,一行就把循环控制写清楚了;while 和 do-while 差不多,都要多一行定义变量。从灵活性来说,while 和 do-while 更好,适合中途可能改变循环条件的情况;for 循环更适合次数固定的倒计时。
有个叫 “编程小白” 的网友分享说,他刚开始学的时候,用 for 循环做倒计时,把 i-- 写成了 i++,结果倒计时变成了往上数,闹了个笑话。所以啊,不管用哪种方法,循环变量的变化方向可别搞反了。
兔子哥觉得,平时做简单的倒计时,用 for 循环最方便,代码清爽。要是逻辑复杂点,比如需要在倒计时过程中接收用户输入改变时间,用 while 循环更顺手。do-while 用得相对少点,但特定场景下很好用,比如游戏里的倒计时,哪怕时间到了,也要显示最后一下 “0”。
其实这三种方法原理都一样,就是让变量从大到小变化,每次停一秒,再打印出来。关键是搞清楚循环的条件和变量的变化,别写成死循环就行。刚开始练的时候,可以先从简单的 3 秒倒计时做起,成功了再改长点,慢慢就熟练了。
希望这篇文章能帮到你,下次想做倒计时的时候,不妨试试这几种方法,看看哪种最合你心意。

标签: 怎么样 差不多

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~