Netbeans 7.3错误地引用了;“未使用的转让”;暗示
Netbeans 7.3.1 IDE在以下程序的指示行中表示“从未使用分配的值”:Netbeans 7.3错误地引用了;“未使用的转让”;暗示,netbeans,Netbeans,Netbeans 7.3.1 IDE在以下程序的指示行中表示“从未使用分配的值”: public class JavaTest { static int f() { return Math.random() < 0.9 ? 0 : 1; } static int g() { return Math.random() < 0.2 ? 0 : 1; } public static void main(String
public class JavaTest {
static int f() {
return Math.random() < 0.9 ? 0 : 1;
}
static int g() {
return Math.random() < 0.2 ? 0 : 1;
}
public static void main(String[] args) {
int ret;
while ((ret = f()) == 0) { // Unused assignment???
ret = g();
if (ret != 0)
System.out.println(ret);
}
System.out.println(ret);
}
}
公共类JavaTest{
静态int f(){
返回Math.random()<0.9?0:1;
}
静态int g(){
返回Math.random()<0.2?0:1;
}
公共静态void main(字符串[]args){
int ret;
而((ret=f())==0){//未使用的赋值???
ret=g();
如果(ret!=0)
系统输出打印项次(ret);
}
系统输出打印项次(ret);
}
}
我想这是Netbeans中的一个bug,但是有人能确认他们以前是否见过它吗?编辑:
很好,很抱歉我没早点看到。我现在同意你的观点,我可以用你在EclipseJunoSR2中的确切代码确认,没有关于未使用的任务的警告。Netbeans出错了
原件:
Netbeans是正确的。。。您可以在该行之后立即为ret分配一个新值,这样您就可以将f()与0进行比较,例如,
while(f()==0)
这可能是因为您设置了ret
的值,但在再次设置之前,您从不使用此值,因此while((ret=f())==0)
与while(f()==0)
。您认为这是一个bug是正确的,但事实上这是在愚弄Netbeans和这里的一些人(包括我自己)应该建议使用更清晰的代码。我会使用不同的变量来返回每个函数。谢谢大家。madth3的观点很好,虽然Netbeans是错误的,但它足够狡猾,可以欺骗好几个人以及Netbeans,所以我将使用另一个变量来澄清它。我认为情况并非如此。您说我立即为ret分配一个新值,但只有当f()返回0时才会发生这种情况。如果f返回非0,则我退出循环,然后在main()退出之前打印f()返回的值,该值被分配给ret。因此,这不是一个未使用的任务。