Netbeans 7.3错误地引用了;“未使用的转让”;暗示

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

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[] 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。因此,这不是一个未使用的任务。