【问题标题】:cannot resolve method value?无法解析方法值?
【发布时间】:2020-04-29 03:49:05
【问题描述】:

public class week2 {
    public static int numbers(int x, int y) {
        int value = x - y;
        System.out.println("Value is " + value + ".");
        return value;
    }


    public static void main(String[] args) {
        numbers(20,10);
        if(value == 1)
        {
            System.out.println("yo");
        }
        else{
            System.out.println("whatsup");
        }

    }
}

为什么 if(value == 1) 行显示 value 无法解析的错误?我没有在我的方法中提到 value = x-y 吗?编辑:啊谢谢你们我不知道你不能访问方法之外的值

【问题讨论】:

  • 因为变量是在您的 numbers 方法的范围内定义的,并且无法从其他方法访问。将其定义为您班级的静态成员,它将解决您的问题。
  • 您应该将 numbers 方法返回的值存储在一个变量中,并在您的 if 条件中使用它。

标签: java if-statement methods


【解决方案1】:

value 是 numbers(int x,int y) 方法中的方法变量,在此方法之外无法访问。并且此方法将返回一个 int,您不会将其存储到任何变量名称 value在您的 main 方法中。 所以,你需要像这样改变你的代码:

public static void main(String[] args) {
        int value = numbers(20,10);
        if(value == 1)
        {
            System.out.println("yo");
        }
        else{
            System.out.println("whatsup");
        }

    }   

【讨论】:

    【解决方案2】:

    value 是函数中的局部变量,由于它是局部变量,因此无法从同一类或另一个类中的函数中识别出来,因此您必须在 main void 中声明一个变量以绑定 value 的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 2015-06-10
      • 2019-08-28
      • 2019-10-10
      • 2019-06-13
      相关资源
      最近更新 更多