除了for语句外,while语句也用于实现循环,而且他的适应面更广,其一般形式为:
while(表达式) 循环语句;
该语句的执行流程是:
(1)步骤一:判断小括号中的表达式的值,如果表达式的值为真,则执行while后面的循环语句;如果表达式的值为假,则不执行循环语句,而且结束while语句的执行;
(2)步骤二:如果表达式的值为真,执行完循环语句之后,回到步骤一继续循环判断执行;
while语句的执行流程可以如下图所示:
所以,可以看到,如果表达式的值为真,那么,就一直执行循环语句。直到表达式的值为假的时候,才结束while()语句。
原文链接:https://blog.csdn.net/feng19870412/article/details/108347640
下面通过和for语句的比较,讨论while语句的使用方法。
(1)while语句中的表达式可以时任意合法的表达式,循环体语句只能是一条语句。
(2)从两种循环语句的形式和执行流程可以看出,while语句的构成简单,只有一个表达式和一天循环体语句,分别对应循环的两个核心要素:循环条件和循环体,可以直接把循环问题的分析设计转换为语句实现。
(3)循环的实现一般包括4个部分,即初始化、条件控制、重复的 *** 作以及通过改变循环变量的值最终改变条件的真假性,使循环能正常结束。这4个部分可以直接for语句中的4个成分(表达式1、表达式2、循环体语句和表达式3)相对应,当时有while语句时,由于它只有2个成分(表达式和循环体语句),就需要另加初始化部分,至于第4个部分,while语句的循环体语句可包含for语句的循环体语句和表达式3,所有while循环体语句中必须包含能最终改变循环条件真假性的 *** 作。
(4)从while语句和for语句的执行流程可以看出,它们的执行机制实质上是一样的,都是在循环前先判断条件,只有条件为“真”才进入循环。
可以把for语句改写成while语句:
表达式1;
while(表达式2){
for的循环体语句;
表达式3;
}
for语句和while语句都能实现循环。一般情况下,如果题目中指定了循环次数,使用for语句更清晰,循环的4个组成部分一目了然;其他情况下多使用while语句。例如下面例题没有直接给出循环次数,而是由某一项的值来控制循环,因此就选用了while语句。
使用格雷戈里公式求pai的近似值且最后一项的绝对值小于给定的精度eps: do-while语句for语句和while语句都是在循环先判断条件,只有条件满足才会进入循环,如果一开始条件就不满足,则循环一次都不执行。如
do-while语句与上述两种循环语句略有不同,它先执行循环体,后判断循环条件。所有无论循环条件的值如何,至少会执行一次循环体。其一般形式为:
do{
循环体语句
}while(表达式);
do-while语句的执行流程如右图所示,第一次进入循环时,首先执行循环体语句,然后再检查循环控制条件,即计算表达式,若值为“真”,继续循环,直到表达式的值为“假”,不执行循环。
do-while语句的使用方法和while语句类似,语句中的表达式可以是仍以合法的表达式,循环体语句只能是一条语句;使用时要另加初始化部分,循环体语句必须包含能最终改变条件真假性的 *** 作。
do-while语句适合于先循环、后判断循环条件的情况,一般在循环体的执行过程中明确循环控制条件。它每执行一次循环体后,再判断条件,以决定是否进行下一次循环。
统计一个整数的位数:break语句与continue语句: 判断一个数是否为素数: 注:
虽然是按照课本打的代码,但我觉得有一点困难,因为太多语句的嵌套,导致自己得对每个花括号十分注意,不能对错!
如上图,使用循环来判断素数,得到两种结论,是素数或者不是素数,分别对应循环的两个条件:
- 正常的的for循环结束条件i>limit,可判定m是一个素数。
- 若m%i==0,说明m能被某个i整除,可判定m不是素数。
break语句强制循环结束,一旦执行了break语句,循环提前结束,不在执行循环体中位于其后的其他语句。break语句应该和if语句配合使用,即条件满足时,才执行不break跳出循环;否则,若break无条件执行,意味着永远不会执行循环体中break后面的其他语句。因为先前学过break语句,就不再详细解释。
continue语句:continue语句的作用是跳过循环体中continue后面的语句,
继续下一次循环,其工作流程如图所示,continue语句
一般也需要与if语句配合使用。
continue语句和break语句的区别在于,break结束循环,而continue只是跳过后面语句继续循环。break除了可以中止循环外,还用于switch语句,而continue只能用于循环。
练习1:输入一批学生的成绩,计算平均成绩,并统计不及格学生的人数:
练习2: 练习3:逆序输出一个整数的各位数字:
练习4:
练习5:
自制计算一个整数的位数:
本周学习到此为止,
如有错误,欢迎纠正。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)