如何在方法中初始化全局变量

How to initialize global variable in method

static void compare(int a) {
        Scanner sc= new Scanner(System.in);
        int b= sc.nextInt();

我想将 int b 设为全局变量。
在 Python 中,我可以在这样的函数中初始化全局变量

def compare():
    global b
    b = 15

但在 java 添加静态 static int b= sc.nextInt(); 出错,为什么?

如果你想让一些变量成为全局变量,那么你需要在方法之外声明变量。在 java 中,你不能在方法内部声明静态变量(即使它是静态的),因为在方法内部所有变量都是局部变量,在这个方法之外不存在,这就是为什么它们不能是静态的。

import java.util.*;

public class GlobalVariable{
    static int b;
    public static void main(String...args){
        GlobalVariable.compare(1);
        System.out.println(b);
    }

    static void compare(int a){
        Scanner sc = new Scanner(System.in);
        b = sc.nextInt();
    }
}

据我所知,你不能这样做。 您必须在方法之外声明 b。

static int b ;

然后在方法内部对其进行初始化:

b= sc.nextInt();

请参阅:Global variables in Java 了解有关 JAVA 中的全局变量以及何时 use/not 使用它们的更多详细信息。