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可能没有被初始化,但这将是因为第一次,因为业余将第一次在1。我不知道如何解决这个问题。
答案 0 :(得分:0)
为什么不在if之前写一个petiteComm = 0。 这应该会有所帮助。
答案 1 :(得分:0)
很难知道你在这里使用的语言是什么,但无论如何,这听起来像是高估了编译器。
正如其他人所提到的,你需要给它一个初始值。你可以这么做,但是你看得很合适,但看看你给我们的语法,
petiteComm = 0;
应该有效。我可能很想将它设置为null
或-1
,但如果不了解更多情况,我不想再假设它了。
通常,编译器不会寻找第二层后果。也就是说,他们会告诉你一个变量是否永远不会给你一个值,正如你在这里看到的那样,但他们并不“足够聪明”来推断它们是否会被赋予价值。
考虑以下代码块,它说明了您所看到的相同错误,但更简洁一点:
x = 0
if(x == 0) {
y = 10;
}
print(y);
x
总是为零,因此if
块将始终执行,但(大多数,包括您的)编译器将无法检测到。他们只会看到一个未初始化的未初始化的y
变量。简单的解决方案是使用默认值初始化y
。或者,您可以在else
块中抛出异常,以指示发生了意外情况,或者操作无序运行。那个例外应该再次取决于语言,算作退出路线,因此可以避开你所看到的更多支票。
这只是一个环境问题。