变量未在if语句中初始化

时间:2017-11-15 10:42:40

标签: java loops variables

我正在尝试以下代码。

    int index, use, comp;
    for (index = 0; index < 3; index++)
    {
        if (user1.equalsIgnoreCase(options[index]))
        {
            use = index;
        }
    }
    for (index = 0; index < 3; index++)
    {
        if (opt.equalsIgnoreCase(options[index]))
        {
            comp = add + index;
        }
    }
    int sum = comp + use;

在第int sum = comp + use;行,我收到一条错误,指出变量comp和use未初始化。如何在执行循环期间将这些值存储在这些变量中?

2 个答案:

答案 0 :(得分:1)

编译器告诉您,到达第comp行时,useint sum = comp + use;可能没有给出值。这显然是正确的(从编译器的角度来看):无法确定这些变量是否已将值放入其中。

解决此问题的一种简单方法是在开始时初始化它们:

int comp = 0;
int use = 0;

但首先要确保这不会破坏你想要的功能。

答案 1 :(得分:0)

你需要计算for循环中的总和,否则,两个变量将是可访问的(循环之外)。

 int index;
 int sum = 0;
 int comp= 0;
 int use = 0; 
 //would've been better if you specified what these variables are for though.

    for (index = 0; index < 3; index++)
    {          
        if (user1.equalsIgnoreCase(options[index]))
        {
            use = index;
        }
        if (opt.equalsIgnoreCase(options[index]))
        {
            comp = add + index;
        }           
        sum = comp + use;
    }