提问人:Ozakriid 提问时间:2/18/2023 更新时间:2/18/2023 访问量:46
for 循环中的变量给出一条消息,指出“未使用局部变量 i 的值”
Variable in for loop is giving a message that "The value of the local variable i is not used"
问:
我编写了一个for循环,应该确定是否有用户输入。如果有,它将 的 6 个元素设置为输入,即 vararg 。如果没有输入,则将所有元素设置为等于 -1。int[] valueArr
int[] statValue
if (statValue.length == 6) {
for (int i = 0; i < 6; i++) {
valueArr[i] = statValue[i];
}
} else {
for (int i : valueArr) {
i = -1;
}
}
我正在使用 Visual Studio Code,它给了我一条消息:for (int i : valueArr)
“未使用局部变量 i 的值。”
那个特定的for循环语法对我来说仍然是新的,所以我可能很盲目,但它在另一个文件中工作:
for(int i : rollResults) {
sum = sum + i;
}
我觉得我还应该提到给我带来麻烦的 for 循环是在一种方法中。我还很新,最近才开始使用私人方法。我注意到该方法在不在其他地方使用时会给出相同的消息,但我不明白为什么它会出现在这里。private void
我尝试关闭并重新打开 Visual Studio Code、删除和重新键入代码以及其他形式。在我短暂的经验中,我曾遇到过一些错误和消息,这些错误和消息不应该出现,并用我提到的内容修复它们,但这些都不起作用。
答:
for (int i : valueArr) { .... CODE HERE ... }
这将设置一个循环,该循环将运行一定次数。在此循环中,在每个循环开始时,都会创建一个名为 的全新变量,其中包含 中的值之一。一旦循环结束,这个变量就会被销毁。值得注意的是,不是直接的值 - 修改它没有任何作用 - 如果你稍后在块中使用,除了影响这个循环。它不会修改 的内容。CODE HERE
i
valueArr
i
valueArr
i
valueArr
因此,为什么你会收到警告:什么都不做 - 你改变了什么,然后循环结束,这意味着消失了,你的代码没有改变任何事情或做任何事情,这肯定不是你想要的。因此,警告。i = -1
i
i
目前还不完全清楚你想在这里做什么。如果打算将所有值设置为 -1,则需要:valueArr
for (int i = 0; i < valueArr.length; i++) valueArr[i] = -1;
或者,实际上,您可以更简单地做到这一点:
Arrays.fill(valueArr, -1);
valueArr[i] = -1
将数组中第 -个值的值更改为 。 什么也不做。i
valueArr
-1
for (int i : valueArr) i = -1;
评论