Java——在各种方法中使用静态类变量



我是编程新手,我需要一些帮助来了解如何在许多方法中使用相同的变量。提前感谢!

我有一个类,在方法之前声明了一些静态变量,之后我有了第一个计算一些值的方法和第二个打印结果的方法。在打印方法中,我想打印初始输入,但它总是0。有人能帮我了解如何更新全局变量吗?

我试图从该方法返回值,但它没有更新";全局";变量

import java.util.Scanner;
public class Main {
public static boolean evenNumber = false;
public static boolean positiveNumber = false;
public static boolean positiveEvenNumber = false;
public static int intInputNumber;

public static void main(String[] args) {
testEvenPositive();
printMethod();
}
public static int testEvenPositive(){
System.out.println("Please insert a number, it will be evaluated to even or not and id it's positive or not.");
Scanner scanner = new Scanner(System.in);
int intInputNumber = Integer.parseInt(scanner.nextLine());
if (intInputNumber > 0) {
positiveNumber = true;}
if (intInputNumber % 2 == 0) {
evenNumber = true;}
if (intInputNumber % 2 == 0 && intInputNumber > 0) {
positiveEvenNumber = true;}
return intInputNumber;
}
public static void printMethod() {
System.out.println(Main.intInputNumber + " is an even number: " + evenNumber);
System.out.println(Main.intInputNumber + " is a positive number: " + positiveNumber);
System.out.println(Main.intInputNumber + " is a positive even number: " + positiveEvenNumber);
}
}

问题是您在testEvenPositive((方法中声明了一个局部变量(intInputNumber(。这就是正在改变的。您也忽略了正在返回的内容。相反,您可以不声明局部变量并使该方法无效

public static void main(String[] args) {
testEvenPositive();
printMethod();
}
public static void testEvenPositive(){
System.out.println("Please insert a number, it will be evaluated to even or not and id it's positive or not.");
Scanner scanner = new Scanner(System.in);
intInputNumber = Integer.parseInt(scanner.nextLine());
if (intInputNumber > 0) {
positiveNumber = true;}
if (intInputNumber % 2 == 0) {
evenNumber = true;}
if (intInputNumber % 2 == 0 && intInputNumber > 0) {
positiveEvenNumber = true;}
}

或者您可以返回变量,然后将其分配到主方法中

public static void main(String[] args) {
intInputNumber = testEvenPositive();
printMethod();
}
public static int testEvenPositive(){
System.out.println("Please insert a number, it will be evaluated to even or not and id it's positive or not.");
Scanner scanner = new Scanner(System.in);
int intInputNumber = Integer.parseInt(scanner.nextLine());
if (intInputNumber > 0) {
positiveNumber = true;}
if (intInputNumber % 2 == 0) {
evenNumber = true;}
if (intInputNumber % 2 == 0 && intInputNumber > 0) {
positiveEvenNumber = true;}
return intInputNumber;
}

我也认为在这种情况下不应该使用全局变量。您可以在主要方法中定义变量并传递参数。

最新更新