我正在处理一个程序,该程序将要求用户提供整数,然后询问另一个程序,然后将它们作为图表。然后,它将告诉他们他们之间的距离。用户必须输入整数或按" Q"退出。如果其他任何东西(不是整数或字母" Q"),它将告诉他们这是不正确的,请重试。我认为这就是我可以完成的方法,但它返回错误 cannot find symbol
。非常感谢帮助!
import java.util.Scanner;
public class PointCheck{
public static void main(String[] args){
try {
System.out.println("Welcome");
System.out.println("To quit at anytime please type "Q". Enter point:");
char Q = 'Q';
char q = 'q';
Scanner scan = new Scanner (System.in);
input = scan.next();
while (input.hasNext()) {
if (input.hasNextInt()) {
System.out.println("Int input");
}
else if (input.equals("Q")) {
System.out.println("Exiting");
}
/*else {
System.out.println("You did not enter a valid value. Please enter a number or "Q" to quit.");
}*/
}
}
catch(Exception e){
System.out.println("Exiting Program.");
}
}
}
如果我不评论最后的其他语句,它只是默认为此,然后永远循环我的错误消息。
我已经对您的代码进行了一些修改,希望它有帮助:)
public class PointCheck {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
System.out.println("Welcome");
System.out.println("To quit at anytime please type "Q". Enter point:");
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
if (scan.hasNextInt()) {
System.out.println("Int input" + scan.nextInt());
} else {
String input = scan.next();
if (input.equalsIgnoreCase("Q")){
System.out.println("Exiting");
break;
}else {
System.out.println("You did not enter a valid value. Please enter a number or "Q" to quit.");
}
}
}
} catch (Exception e) {
System.out.println("Exiting Program.");
}
}
}
您可以尝试一下...输入只会仅用于整数,如果您输入除了Integer
以外的任何内容,它将引发异常并移至catch
块,该程序将终止程序。
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
System.out.println("Welcome");
System.out.println("Press any key to exit.. Enter point:");
Scanner scanner= new Scanner(System.in);
while (true){
try {
int number = scanner.nextInt();
System.out.println(number);
}
catch (Exception e){
System.exit(0);
}
}
}
}
类似的东西可能是您喜欢的。在代码中阅读评论:
System.out.println("Welcome");
Scanner scanner= new Scanner(System.in);
int number = 0;
while (true){
System.out.println("Enter point (q to quit): ");
String strg = scanner.nextLine();
// Get out of loop if q or Q or quit,
// or QUIT, or Quit, etc is entered.
// providing the input actually contains
// something.
if (!strg.equals("") && strg.toLowerCase().charAt(0) == 'q') {
break;
}
// Use the String.matches() method with regex to
// determine if an integer number was supplied.
if (!strg.matches("\d+")) {
System.err.println("Invalid Entry - Integer values only! Try again.n");
continue; // Start loop from beginning.
}
// Convert string number to Integer.
number = Integer.parseInt(strg);
break; // Get outta loop
}
String msg = "The number entered is: " + number;
if (number == 0) { msg = "Nothing Entered!"; }
System.out.println(msg);