变量可能尚未初始化,但应该是因为 if else if

Variable might not have been initiialized but should be because of an if else if

here is the deal :

compteur = compteur + 1;
if ( compteur == 1 ) {
    petiteComm = commTotal;
    grandeComm = commTotal;
} else {
    if ( commTotal < petiteComm ) {
        petiteComm = commTotal; 
    }
    if ( commTotal > grandeComm ) {
         grandeComm = commTotal;
    }
}

它说 petiteComm 可能还没有被初始化,但这是因为第一个 if 因为 compteur 第一次是 1。我不知道该怎么做才能解决这个问题。

你为什么不在 if 之前写一个 petiteComm = 0。 这应该有所帮助。

很难知道你在这里使用的是什么语言,但无论如何,听起来你高估了编译器。

正如其他人提到的,你需要给它一个初始值。您可以按照您认为合适的方式执行此操作,但看看您提供给我们的语法,

petiteComm = 0;

应该可以。我可能很想将其设置为 null-1,但在不了解更多情况的情况下,我不想再做任何假设。

一般来说,编译器不会寻找二级结果。也就是说,它们会告诉您变量是否从未被赋值,正如您在此处看到的那样,但它们 "smart" 不足以推断它们是否会被赋值。

考虑以下代码块,它说明了与您看到的相同的错误,但更加简洁:

x = 0

if(x == 0) {
    y = 10;
}

print(y);

x 始终 为零,因此 if 块将始终执行,但(大多数,包括你的)编译器将无法检测那个。他们只会看到一个未初始化的 y 变量被无缘无故地使用。简单的解决方案是用默认值初始化 y 。或者,您可以在 else 块中抛出异常,以指示发生了意外情况,或者操作 运行 出现故障。再次根据语言,该异常应该算作退出路径,因此可以像您看到的那样逃避任何更多检查。

这只是环境问题。