在Java中,似乎没有任何理由更改变量
所以我昨天才开始学习Java,如果这有点混乱,我深表歉意 基本上,我是通过打印来自函数questionTime()的输入来测试函数menuValid(),我的问题是,不管我对菜单的输入是什么,menuValid()将始终打印“0”作为我的答案。但是,在相同的点声明和打印X变量,但是X将保持不变,并且不会设置为“0” 这是我的密码:在Java中,似乎没有任何理由更改变量,java,Java,所以我昨天才开始学习Java,如果这有点混乱,我深表歉意 基本上,我是通过打印来自函数questionTime()的输入来测试函数menuValid(),我的问题是,不管我对菜单的输入是什么,menuValid()将始终打印“0”作为我的答案。但是,在相同的点声明和打印X变量,但是X将保持不变,并且不会设置为“0” 这是我的密码: import java.util.Scanner; public class Test { public static int menu_input
import java.util.Scanner;
public class Test {
public static int menu_input;
public static int x;
static void menuError() {
System.out.println("Please pick a valid option.");
questionTime();
}
public static void questionTime() {
Scanner scan = new Scanner(System.in);
try {
int menu_input = scan.nextInt();
x = 25;
if(menu_input>4 && menu_input < 9){
menuError();
}
if(menu_input>9 || menu_input<1){
menuError();
}
else{
System.out.println(menu_input);
menuValid();
}
scan.close();
} catch(Exception e) {
menuError();
}
}
public static void menuValid() {
System.out.println(menu_input);
System.out.println(x);
}
public static void main(String[] args) {
System.out.println("P4CS Mini Applications");
System.out.println("----------------------");
System.out.println("Please Select an option:");
System.out.println("1) Keep Counting Game");
System.out.println("2) Number Conversion Tool");
System.out.println("3) Universal Product Code (UPC) Calculator");
System.out.println("4) Universal Product Code (UPC) Checker");
System.out.println("9) Quit");
System.out.println("Please enter option");
questionTime();
}
}
您在
questionTime
内重新声明了menu\u input
(当您声明int menu\u input=scan.nextInt();
),这与您处理x
的方式不同,您刚刚更改了它的值(x=25;
)。因此,您通过扫描仪设置的菜单项
不是您在menuValid
中打印的菜单输入
类变量,您必须将菜单输入
传递到menuValid()
-
else{
System.out.println(menu_input);
menuValid(menu_input); // see this line
}
并更改菜单的有效功能,如下所示-
public static void menuValid(int menu_input) {
System.out.println(menu_input);
System.out.println(x);
}
当你命名你的方法时,考虑的是行动,而不是路标。例如,questionTime()
应该命名为类似于getUserInput()
。Java命名约定使用cammelCase,变量和方法名称不带下划线<代码>菜单输入应为menuInput
。
public static void menuValid(int menu_input) {
System.out.println(menu_input);
System.out.println(x);
}