对于循环不起作用

时间:2011-11-30 22:37:01

标签: java

为什么这个for循环计数不正确?如果我将变量runs设置为3,则循环运行4次。 (一个额外的案例。)

提前致谢!

for (int i = runs; i >= 0; i--)
{
   System.out.println("Input Duration of Trip");
   Scanner timeCalc = new Scanner(System.in);
   System.out.print("Hours ==> ");
   int hour = timeCalc.nextInt();
   System.out.print("Minutes ==> ");
   int minute = timeCalc.nextInt();
   System.out.println("You entered: " + hour + " hour(s) and " + minute + " minutes");
   System.out.println();
   time = convertHoursMinutesToDouble(hour, minute);
   totalTime += time;
}

4 个答案:

答案 0 :(得分:5)

循环运行值:

3
2
1
0

那是4次。

如果您希望它运行值3,2和1,您可以将for循环更改为:

for (int i = runs; i > 0; i--)

for (int i = runs; i >= 1; i--)

答案 1 :(得分:1)

i == 3
i >= 0
println

i--
i == 2
i >= 0
println

i--
i == 1
i >= 0
println

i--
i == 0
i >= 0
println
那是4次。你需要你的条件:i> 0

答案 2 :(得分:1)

你的错误在

i>=0

代码正在做什么“好吧,我将等于三。现在,让我们看看,好吧,再次备份,减去一个,i = 2 ...减去一个i = 1 ......现在棘手的棘手它SKIPS终止部分代码,因为它首先看它,然后减去一个,所以i = 0,ok WAIT i = 0所以STOP。“

解?

for (int i = runs; **i >= 1**; i--)

这个错误总是让我感到困惑。 希望整个“通过电脑之心的事情”不会打扰你。这就是我倾向于思考的方式。

快乐的编码!

答案 3 :(得分:0)

因为您设置了大于或等于...

所以从3开始,然后是2,1,0。