记得算识字量的程序么? 如果要算10年, 难道必须重复10行识字量 = (1 + 每年翻倍数) * 识字量;吗? 用脚趾想也不可能吧.
在写代码之前, 不妨先构思一下该怎么算. 这里多了一个输入值: 年限. 照原来的思路应该是: 每过一年增加一次识字量, 直到过了10年. 这样就需要记着过了多少年. 之前提到, 一个变量用来"记"变化的值最合适:
for (int 年份 = 0; 年份 < 年限; 年份 = 年份 + 1) { 识字量 = (1 + 每年翻倍数) * 识字量; }
上面的代码反映了我们的思路:
同样的循环用while的格式来写是这样:
int 年份 = 0; while (年份 < 年限) { 识字量 = (1 + 每年翻倍数) * 识字量; 年份 = 年份 + 1; }
看起来for循环更紧凑, 也更不容易写错. while循环里,如果忘写了"年份 = 年份 + 1;",可就有趣了,因为年份没有增加, 循环中止条件一直不能满足(0永远小于年限), 代码运行停不下来,俗称"死循环". 而for循环里因为定了"(初始化; 循环条件; 累加或递减执行语句)"的格式, 少了一项会很扎眼.
如果想要提前结束循环,可以用break. 想知道过几年能认识中文的常用三千字的话:
break执行后,它所在的循环就被打断,程序从循环之后开始执行.
如果想要循环继续执行,但是跳过循环内的部分代码,可以用continue. 一个牵强的例子,如果从第三年才开始认识新字(比如在国外呆了三年):
for (int 年份 = 0; 年份 < 年限; 年份 = 年份 + 1) { if (年份 < 3) { continue; } 识字量 = (1 + 每年翻倍数) * 识字量; }
注: 有更简短的实现方法, 这个例子只为了演示continue的用处. 恭喜! 至此控制流介绍完了.
敬请期待后续,关注本号“用中文编程”!如需文字版教程,请联系我。
页面更新:2024-05-16
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号