我的代码给出了代码无法访问的错误,我已经注意到了值为
的行
case2C接受了case2C,我不明白为什么?
第一部分工作正常,我接受了三个值,但在第二部分的开始,我从使用中获取了更多3个值,它给出了错误,为什么?
import java.util.Scanner;
class CookieClicker{
public static void main(String[] args) {
Scanner scase1C=new Scanner(System.in);
int testcase1Case=scase1C.nextInt();
double case1C=scase1C.nextDouble();
double case1F=scase1C.nextDouble();
double case1X=scase1C.nextDouble();
double rem=case1X/2;
double case1Farm1=case1C/2+case1X/(2+case1F);
double case1Firstresult;
while(true){
if(rem>case1Farm1){
rem=case1Farm1;
case1Farm1=case1Farm1+case1C/(2+case1F)+case1X/(2+2*case1F);
continue;
}
else{
case1Firstresult=rem;
}
}
double case2C=scase1C.nextDouble(); here the error is coming saying unreachable code,
double case2F=scase1C.nextDouble();
double case2X=scase1C.nextDouble();
double rem2=case2X/2;
double case2Farm1=case2C/2+case2X/(2+case2F);
double case2Firstresult;
while(true){
if(rem>case2Farm1){
rem=case2Farm1;
case2Farm1=case1Farm1+case2C/(2+case1F)+case1X/(2+2*case1F);
continue;
}
else{
case2Firstresult=rem;
}
}
double case3C=scase1C.nextDouble();
double case3F=scase1C.nextDouble();
double case3X=scase1C.nextDouble();
double rem3=case1X/2;
double case3Farm1=case3C/2+case1X/(2+case1F);
double case3Firstresult;
while(true){
if(rem>case1Farm1){
rem=case1Farm1;
case1Farm1=case1Farm1+case3C/(2+case1F)+case1X/(2+2*case1F);
continue;
}
else{
case3Firstresult=rem;
}
}
}
}
答案 0 :(得分:0)
虽然(true)导致它永远循环。你使用continue,但这只是结束循环的迭代。即:循环将从nezt迭代开始。
答案 1 :(得分:0)
while(true){
if(rem>case1Farm1){
rem=case1Farm1;
case1Farm1=case1Farm1+case3C/(2+case1F)+case1X/(2+2*case1F);
continue;
}
else{
case3Firstresult=rem;
}
添加休息;在case3Firstresult = mem之后,否则循环将永远不会退出。
答案 2 :(得分:0)
while(true){
if(rem>case1Farm1){
rem=case1Farm1;
case1Farm1=case1Farm1+case1C/(2+case1F)+case1X/(2+2*case1F);
continue;
}
else{
case1Firstresult=rem;
}
}
while(true)
部分导致此问题。将continue
替换为break
,然后重新考虑代码的设计,并将if
语句中的逻辑合并到while
循环中。
答案 3 :(得分:0)
您的代码永远不会离开“while(true)
”块。您需要使用break
来摆脱它。
答案 4 :(得分:0)
你在这些陈述之上有一个while(true)
循环。除非在其正文中调用break
,否则此循环永远不会退出。因此,永远无法达到以后的陈述。看起来您想在此处调用break
语句:
else{
case1Firstresult=rem;
break; // add break
}
如果这不是正确的地方,请在其他地方添加break
。但你必须在那个循环中有一个。
答案 5 :(得分:0)
这是因为你的
while(true)
除非你突破它,否则会继续持续下去。