而Loop读取非负值,并在读取小于0的值时终止

时间:2012-02-18 01:50:51

标签: java while-loop

我在Java代码实验室中遇到的问题是:

给出两个int变量,total和amount已经声明,写一个循环,将非负值读入amount并将它们加到total中。当小于0的值被读入量时,循环终止。

我的输出或者说我在总和中包含一个负值,或者我似乎停在零,这取决于我如何编写语句。

我的循环如下:

total = 0;
amount = 0;
while( amount > -1 )
{

amount = TC.getNum();

total = total + amount;
}

这个特别的人说我似乎停在零。

1 个答案:

答案 0 :(得分:2)

您的代码将amount 无条件地添加到total,然后在执行此操作之前检查它是否应该已终止。尝试:

total = 0;
amount = 0;
do {
    total = total + amount;
    amount = TC.getNum();
} while ( amount > -1 );

或:

total = 0;
amount = 0;
while(true) {
    amount = TC.getNum();
    if (amount < 0)
        break;
    total = total + amount;
}

我不确定自己哪个更好。

编辑:我想我更喜欢第二个版本。它更自然地读取,并且第一个可能由于在循环开始时多余(并且可能容易出错)total = total + 0而混淆。