此代码在for循环中的i++
上一直给我发出死去的代码警告,并且由于某种原因而不会增加i
!
import java.util.Scanner;
public class HideThatNumber {
/**
* @param args
*/
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int enc=input.nextInt();
int tur=0;
String test="";
double x;
for (int i=1;i<10;i++){
test="";
test+=i;
test+=enc;
x=Integer.parseInt(test);
x/=11;
if(x==Math.round(x));{
tur=i;
break;
}
}
if(tur==0)
System.out.println("Impossible");
else
System.out.println(Integer.parseInt(test)/11);
}
}
if(x==Math.round(x)); <--semi-colon
{
tur=i;
break;
}
在循环内部,您已经在if
的末尾放了一个半彩色。因此,在任何情况下,代码的下一个block
都将执行,因此您将在第一次迭代后脱离循环。
{
tur=i;
break;
}
无论您的条件评估如何,该块将被执行。然后您从循环中 break
。
因此,您会收到警告,因为i++
永远不会执行。
是这一行:
if(x==Math.round(x)); {
分号不应该在那里。在您的代码中,带有break;
的块总是被执行 - 因此在第一次迭代后破裂。