【问题标题】:Initialization outside of conditionals条件之外的初始化
【发布时间】:2014-11-17 15:44:41
【问题描述】:

我是新手,很抱歉我的愚蠢问题。

这是错误: Test.java:19:错误:变量 y 可能尚未初始化

只是想知道如何在不更改条件块之外的所有其他内容的情况下保留“y”的值。我知道(但不是真的)为什么会出错,因为 'y' 没有在 else 块之外定义。

import java.util.Scanner; 
public class Test {
    public static void main(String[] args) {
            Scanner kb = new Scanner(System.in);
            int x, y;
            System.out.print("enter value: ");
            x = kb.nextInt();
            if (x != 5) {
                System.out.println("invalid value");
                System.exit(0);
            }
            else {
                y = 10;
            }
            System.out.println("y = " + y);
        }
}

【问题讨论】:

  • 没有 if 和 else 循环这种东西

标签: java loops if-statement integer


【解决方案1】:

要么初始化它,要么将 System.out.println 放在初始化 y 的 else 语句中。

else
{
    y = 10;
    System.out.println("y = " + y);
}

【讨论】:

    【解决方案2】:
    System.out.print("enter value: ");
    int x = kb.nextInt();
    int y =0;
    

    【讨论】:

    • 谢谢!这就是我一直在寻找的。​​span>
    【解决方案3】:

    由于局部变量不会自动初始化,因此您必须在使用前对其进行初始化

    【讨论】:

      【解决方案4】:

      int x, y = 0;

      按照错误消息中的说明操作并初始化 y

      【讨论】:

      • 这只会初始化y
      • x 在 if 块之前初始化
      猜你喜欢
      • 2012-09-09
      • 1970-01-01
      • 2011-02-14
      • 2020-01-05
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多