【问题标题】:Java variable scope in and outside loop [duplicate]循环内外的Java变量范围[重复]
【发布时间】:2020-12-14 05:21:51
【问题描述】:

我最近在一个在线java测试中写了这段代码。它在一个设置为返回整数的方法中。我收到一条错误消息,例如“变量 a 没有分配给它的值”。我觉得这很奇怪,因为 forloop 必须可以访问方法变量,并且必须注册循环内的赋值对吗?

int a;
for(int i=1;i<5;i++){
    a = i;} 
return a;

我确实假设该方法将返回整数 5。

这只是一个关于变量 a 范围的问题。我知道代码没有意义。

【问题讨论】:

  • for 循环内的代码被编译器视为可能会或可能不会运行的代码。因此,编译器会看到一条路径,在您尝试返回之前,a 不会被初始化。
  • 编译器不知道循环至少会执行一次。
  • @khelwood 我认为它是重复的
  • @klutt 我正在寻找一个关于循环的。我认为足够接近了。

标签: java loops variables scope


【解决方案1】:

您可以尝试以下代码,这将对您有所帮助。任何变量都必须进行初始化才能返回或保存任何值。

class a{
    public static void main(String[] args) {
        System.out.println(test());
    }
    public static int test(){
        int a = 0;
        for(int i=1;i<5;i++){
            a = i;}
        return a;
    }
}

【讨论】:

  • OP 不是问如何避免,而是为什么编译器会抱怨。
猜你喜欢
  • 2014-10-16
  • 1970-01-01
  • 1970-01-01
  • 2013-02-25
  • 2017-12-18
  • 2023-03-31
  • 2018-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多