public static void harcos1csapatbaHelyez()
{
for (int i=0 ; i<7 ; i++)
{
if (ElsoJatekos.elsoJatekosCsapata[i] == 0)
{
ElsoJatekos.elsoJatekosCsapata[i] = 1;
break; //If i dont remove it, it will cause a dead code warning and the for loop will be execute just once! How can I jump out from this loop otherwise?
}
else
{
System.out.println("Elérted a maximális csapatlétszámot!");
break;
}
}
}发布于 2016-04-17 11:22:23
问题不是你有一个break,而是你有两个。这两个break都位于条件if语句的相反分支中,这相当于无条件的break。无论您的代码使用哪个方面的if,在最后都会有一个break。
这意味着循环头中的i++语句永远不会被执行;这是您的死代码。
发布于 2016-04-17 11:20:42
因为i++从未被执行过。循环中的break意味着“立即离开循环”。是您的if/else的两个分支都有它,因此在第一次迭代时都会从循环中分离出来,for的i++部分永远也没有机会运行。如果您不打算循环,那么for循环也可以是简单的int i = 0;,后面跟着当前循环体中的代码(没有break;)。
想必,您正在循环是有原因的,最多只有其中一个块应该有break。
发布于 2016-04-17 11:32:30
你的代码是不完整的,但我仍然可以确定问题在哪里.你有这个循环,里面有一个if-.
如果你仔细观察,你会发现其中有一些特别之处:
如果满足了条件,就会中断循环,但是如果不满足条件,则也会中断循环.
这意味着,无论这是真的还是非ElsoJatekos.elsoJatekosCsapata[i] == 0,您都会中断循环,并在if -变成死代码之后编写ALL .
你永远不会被处决..。IDE很聪明能弄明白..。
这就是IDE抱怨的原因.
public static void harcos1csapatbaHelyez()
{
for (int i = 0; i < 7; i++) {
if (ElsoJatekos.elsoJatekosCsapata[i] == 0) {
ElsoJatekos.elsoJatekosCsapata[i] = 1;
break;
} else {
System.out.println("Elérted a maximális csapatlétszámot!");
break;
}
//
// something else here that is dead-code
}}
https://stackoverflow.com/questions/36675771
复制相似问题