我正在用Java编写一个“加仑到升,反之亦然”的程序,但是一旦我完成了我的程序,我就给了它第一次运行。我按预期显示了系统输出,但随后它跳过了程序的用户输入阶段。
import java.util.Scanner;
public class Main {
private static void intro(String[] args) {
final Scanner galOrLit = new Scanner(System.in);
System.out.println("[1] => Gallons to Liters");
System.out.println("[2] => Liters to Gallons");
if ("1".equals(galOrLit)) {
galToLit(args);
} else if ("2".equals(galOrLit)) {
litToGal(args);
}
}
private static void galToLit(String[] args) {
double liters;
System.out.println("Enter Gallons: ");
final Scanner gallons = new Scanner(System.in);
int input = gallons.nextInt();
liters = input * 3.7854;
System.out.println("\n" + input + " gallons is " + liters + " liters.");
}
private static void litToGal(String[] args) {
double gallons;
System.out.println("Enter Liters: ");
final Scanner liters = new Scanner(System.in);
int input = liters.nextInt();
gallons = input / 3.7854;
System.out.println("\n" + input + " liters is" + gallons + " gallons.");
}
public static void main(String[] args) {
intro(args);
}
}`
我尝试最终完成我的扫描仪,因为我在一个班级中有多个扫描仪,遵循this帖子。我期望我的代码能够顺利运行,但它对输出没有任何影响。这是我对两个版本的的了解。
看起来您实际上并没有读取用户的任何输入。您只是打印出可供选择的选项,但没有读取用户的输入。您只需添加一行:
String choice = scanner.nextLine();
它的样子是这样的:
private static void intro(String[] args) {
final Scanner scanner = new Scanner(System.in);
System.out.println("[1] => Gallons to Liters");
System.out.println("[2] => Liters to Gallons");
String choice = scanner.nextLine();
if ("1".equals(choice)) {
galToLit(args);
} else if ("2".equals(choice)) {
litToGal(args);
}
}
希望这有帮助!