Java 变量未初始化
Java variable is not initialized
我在这里看到过类似的问题,如果这看起来重复,我很抱歉,但对类似问题的回答对我没有帮助。
所以我有一个方法,它是 class 的一部分。这是:
public int min_value()
{
int min;
for (int i = 0;i < size - 1;i++)
{
min = numbers[i];
for (int k = 1;k < size; k++)
{
if (numbers[k] < min)
{
min = numbers[k];
}
else
{
min = numbers[i];
}
}
}
return min;
}
错误提示变量 min 可能尚未初始化。我不明白这怎么可能是真的。我觉得变量不可能不从 for 循环中初始化。请帮忙。谢谢!
将int min;
更改为int min = 0;
您将初始化 min。
编辑:
错误是因为如果 size = 1
,您的 for 循环将永远不会执行,因此 min 永远不会有值。你不能 return 一个未初始化的值,这就是你得到错误的原因。
如果size小于或等于1,min将不会被初始化!
好吧,如果 i 不小于 size - 1
你将 return 保持原样。
在这种情况下,Min 尚未初始化,您将 return 它是错误的来源。
只需输入:
int min = 0
一开始就没事。
此外,您还可以:
min = numbers[0]
min_value()
方法在编译器看来是这样的:
public int min_value()
{
int min;
// for blocks
return min;
}
WHY 部分:想象一下如果 size 等于 1:for 循环的代码块将永远不会执行。由于您在 for
块 (循环)中操作 min
变量,因此编译器假定执行流程 可能不会进入 这些循环,因此它假定这个变量可能不会被初始化。如果您将 min
设置为 class 的成员变量,这不会成为问题(因为成员变量设置为它们的 default type values by the compiler),但这里不是这种情况。 (一个方法体)
我在这里看到过类似的问题,如果这看起来重复,我很抱歉,但对类似问题的回答对我没有帮助。 所以我有一个方法,它是 class 的一部分。这是:
public int min_value()
{
int min;
for (int i = 0;i < size - 1;i++)
{
min = numbers[i];
for (int k = 1;k < size; k++)
{
if (numbers[k] < min)
{
min = numbers[k];
}
else
{
min = numbers[i];
}
}
}
return min;
}
错误提示变量 min 可能尚未初始化。我不明白这怎么可能是真的。我觉得变量不可能不从 for 循环中初始化。请帮忙。谢谢!
将int min;
更改为int min = 0;
您将初始化 min。
编辑:
错误是因为如果 size = 1
,您的 for 循环将永远不会执行,因此 min 永远不会有值。你不能 return 一个未初始化的值,这就是你得到错误的原因。
如果size小于或等于1,min将不会被初始化!
好吧,如果 i 不小于 size - 1
你将 return 保持原样。
在这种情况下,Min 尚未初始化,您将 return 它是错误的来源。
只需输入:
int min = 0
一开始就没事。
此外,您还可以:
min = numbers[0]
min_value()
方法在编译器看来是这样的:
public int min_value()
{
int min;
// for blocks
return min;
}
WHY 部分:想象一下如果 size 等于 1:for 循环的代码块将永远不会执行。由于您在 for
块 (循环)中操作 min
变量,因此编译器假定执行流程 可能不会进入 这些循环,因此它假定这个变量可能不会被初始化。如果您将 min
设置为 class 的成员变量,这不会成为问题(因为成员变量设置为它们的 default type values by the compiler),但这里不是这种情况。 (一个方法体)