//Calculate the amount of money you will receive based on your option
if (n == 0) {
while (death - 1 >= counter) {
System.out.format("Week %2d Linear: $%.2f Exponential: $%.2f\n", counter, a, p);
if ((death - 1 == counter) && (a >= p)) {
System.out.format("Your uncle dies in week %2d. But you were lucky and received an extra " +
"$%.2f dollars.\n", death, ((death * initial) - ((Math.pow(2, (death - 1)) / 100))));
}
if ((p > a) && (death - 1 >= counter)) {
System.out.format("Your uncle dies in week %2d. But you were unlucky and missed an extra " +
"$%.2f dollars.\n", death, (p - a));
}
a += initial;
counter++;
p = p * 2;
}
}
输出:
第1周线性:1.39美元指数:0.01美元
第2周线性:2.79美元指数:0.02美元
第3周线性:4.18美元指数:0.04美元
第4周线性:5.58美元指数:0.08美元
第5周线性:6.97美元指数:0.16美元
第6周线性:8.36美元指数:0.32美元
第7周线性:$ 9.76指数:$ 0.64
第8周线性:11.15美元指数:1.28美元
第9周线性:12.55美元指数:2.56美元
第10周线性:$ 13.94指数:$ 5.12
第11周线性:15.34美元指数:10.24美元
第12周线性:16.73美元指数:20.48美元
你的叔叔在第31周去世了。但是你运气不好而又错过了额外的 3.75美元。
第13周线性:18.12美元指数:40.96美元
你的叔叔在第31周去世了。但是你运气不好而又错过了额外的 $ 22.84美元。
第14周线性:19.52美元指数:81.92美元
你的叔叔在第31周去世了。但是你运气不好而又错过了额外的 $ 62.40美元。
我的问题是如何停止我的if语句,这样当p> a时它会停止输出并说他已经死了。在我的例子第12周,我希望它停止输出并说他死了。
答案 0 :(得分:0)
这里没有大量的信息;但通常情况下,如果要在满足条件时停止循环,可以break
循环或更改在while循环中检查的布尔变量,防止它再次循环。
答案 1 :(得分:0)
由于(death-1> = counter)条件在while条件中得到验证,因此对于第二个if语句是多余的。此外,两个If语句是互斥的,因此您可以使用if和else条件,这样一个语句只验证一次并且相对更快/可读。
if ((death - 1 == counter) && (a >= p)) {
System.out.format("Your uncle dies in week %2d. But you were lucky and received an extra " +
"$%.2f dollars.\n", death, ((death * initial) - ((Math.pow(2, (death - 1)) / 100))));
}else if(p > a) {
System.out.format("Your uncle dies in week %2d. But you were unlucky and missed an extra " +
"$%.2f dollars.\n", death, (p - a));
break;
}