标题:
★★急j急!关于书本中一个程序的困惑!
[打印本页]
作者:
benyitonghei
时间:
2010-7-29 04:25
标题:
★★急j急!关于书本中一个程序的困惑!
〈〈 JAVA入门1.2.3〉〉第4章 4.3.1 使用while语句
的一个程序如下:
public class SettleAccountsUsingWhile {
public static void main(String[ ] args){
int tikes =5;
while(times>0){ //while条件表达式为true时,while语句的代码块将会一直执行
int price = 5;
int amout =10;
if(price>0&&amout>0){
int totalcost = price*amout
System.out.println(totalcost);
} else {
Syetem.out.println("price和amout的值必须都大于0,否则无法计算totalcost");
}
times = times _ 1;
}
System.out.println("嘿嘿,你好哦“);
}
}
文中有段话是这样说的
”times的初始值就是while语句将要执行的次数。这里如果不在WHILE语句代码块中减少TIMES变量的 值,那么这个WHLIE语句将一直 执行下去不会停止,程序就会进入所谓的“死循环”
关于这个程序的困惑:
既然TIMES的初始值是5,那么WHILE就要执行5次;
如果程序中,没有”times = times _ 1;“,”WHLIE语句将一直 执行下去不会停止“ 这不是与WHILE将要执行5次发生冲突了吗?
如果 ”WHLIE语句将一直 执行下去不会停止“,那么前面的 ”TIMES的初始值是5不就失去意义了吗?
作者:
benyitonghei
时间:
2010-7-29 07:37
晕哦。。 熬了一个晚上,被这个问题困住喽。。。没人知道吗?
作者:
fwbook
时间:
2010-7-29 08:54
书上讲的循环次数,都是根据这个代码来说的。如果脱离这个代码,循环次数讲解都是没有意义了。
你理解的确实正确。times初始值为5,每次循环times都会减一。当循环5次后,times=0,所以不满足继续循环的条件times>0,所以循环不会继续进行了。
所以,千万不要把这个程序的特例去普遍推广。这个程序只是让大家了解while的循环条件对循环的影响。
作者:
fwbook
时间:
2010-7-29 08:55
最后提个建议,大家一般晚上4点,都在睡觉。如果你有问题,就直接发到论坛中。不用专门等。
睡个好觉,第二天才有好精神来继续学习。:)
作者:
benyitonghei
时间:
2010-7-30 09:48
恩。。。收到拉。。谢谢拉
欢迎光临 万卷图书 (http://wanjuanchina.net/)
Powered by Discuz! 7.0.0