我真的不明白为什么它没有突破循环。这是我的计划:
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
double tution, rate, r, t, realpay, multiply, start;
start = 0;
while(start != -1)
{
System.out.print("Press 1 to start, -1 to end: ");
start = input.nextDouble();
System.out.print("Please enter the current tution fee for the year: ");
tution = input.nextDouble();
System.out.print("Enter in the amount of interest: ");
rate = input.nextDouble();
r = 1 + rate;
System.out.print("Please enter the number of years: ");
t = input.nextDouble();
multiply = Math.pow(r,t);
realpay = tution * multiply;
System.out.println("the cost of your tution fee: " + realpay);
if (start == -1)
{
break;
}
}
}
你能告诉我它有什么问题吗?
答案 0 :(得分:7)
你需要在阅读开始后移动休息
start = input.nextDouble();
if (start == -1) {
break;
}
即使您已输入-1
,其他程序将继续并在循环结束时中断答案 1 :(得分:4)
测试
if (start == -1) {
break;
}
应该在
之后立即完成start = input.nextDouble();
在你的情况下,你实际上是在跳出while循环,但只是在执行循环体之后。
通过将start
声明为double
,然后使用==
测试其值,也要注意可能出现的问题。对于这样的变量,最好将其声明为int
。
答案 2 :(得分:0)
在while循环外移动If块。它不会破坏,因为当它读取-1时,它无法进入if块的while循环。
将它移到外面会破裂。