如何在方法中初始化全局变量
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 使用它们的更多详细信息。
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 使用它们的更多详细信息。