我在Java代码实验室中遇到的问题是:
给出两个int变量,total和amount已经声明,写一个循环,将非负值读入amount并将它们加到total中。当小于0的值被读入量时,循环终止。
我的输出或者说我在总和中包含一个负值,或者我似乎停在零,这取决于我如何编写语句。
我的循环如下:
total = 0;
amount = 0;
while( amount > -1 )
{
amount = TC.getNum();
total = total + amount;
}
这个特别的人说我似乎停在零。
答案 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
而混淆。