我对你这些才华横溢的人有一点疑问!
我正在制作一个小型控制台游戏,没有什么太花哨,但肯定不简单,并且想要找到一种更有效的方法来做某事!我想做的就是从用户那里得到输入!
从一开始我就被教导使用扫描仪从控制台获取用户输入!这就是我一直用的东西!下面是我要写的一个例子。
package com.mattkx4.cgamedev.main;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// Print out a message asking the user if ready
System.out.println("Are you ready to continue? (Enter \"YES\" or \"NO\")");
// Initialize a Scanner
Scanner s = new Scanner(System.in);
// Initialize a String to hold the User Input
String in = s.nextLine();
// Check the input with IF statements
if(in.equalsIgnoreCase("YES")) {
System.out.println("Let's continue!");
}else if(in.equalsIgnoreCase("NO")) {
System.out.println("Goodbye!");
s.close();
System.exit(0);
}else{
System.out.println("Please input a correct response!");
main(null);
}
}
}
我绝对相信有更高效或更简单的方法来做到这一点!任何建议将不胜感激!
提前致谢 马修
答案 0 :(得分:1)
Oracle Java Tutorial 本身总是说明了正确的方法。
在此处阅读I/O from the Command Line并查找示例代码。
有些观点:
main()
方法将再次初始化所有内容。switch-case
。do-while
循环来实现相同的功能。示例代码:
public static void main(String args[]) throws IOException {
Console c = System.console();
if (c == null) {
System.err.println("No console.");
System.exit(1);
}
boolean isValidResponse = false;
do {
String response = c.readLine("Are you ready to continue? (Enter \"YES\" or \"NO\"): ");
switch (response.toUpperCase()) {
case "YES":
isValidResponse = true;
System.out.println("Let's continue!");
break;
case "NO":
isValidResponse = true;
System.out.println("Goodbye!");
break;
default:
isValidResponse = false;
System.out.println("Please input a correct response!");
break;
}
} while (!isValidResponse);
}