我无法使用Scanner
获取用户输入并将其存储在变量中。问题是,当用户输入输入时,该方法进入无限循环。
即。用户可以输入任何值或空格,但程序不会将它们作为输入,并继续下一步将它们分配给变量。
public class AS10 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
double X = 0;
double Y = 0;
System.out.println("please enter the value of X-cordinate and Y cordinate :");
Scanner scn = new Scanner(System.in);
while (scn.hasNext()){
X = scn.nextDouble();
Y = scn.nextDouble();
}
System.out.println(" the value of y is " + Y+ "the value of x is "+ X);
}
}
答案 0 :(得分:0)
您不需要while
循环。您的代码中没有任何内容可以导致循环结束。
只需删除它,您的代码即可运行。
public static void main(String[] args) {
double X = 0;
double Y = 0;
System.out.println("please enter the value of X-cordinate and Y cordinate :");
Scanner scn = new Scanner(System.in);
X = scn.nextDouble();
Y = scn.nextDouble();
System.out.println(" the value of y is " + Y + " the value of x is " + X);
}
答案 1 :(得分:0)
Scanner
class hasNext
方法检查输入中是否有可用的令牌。您不需要while循环来进行错误处理。在try catch块中包含赋值语句(从nextDouble
方法获取值)并相应地处理异常。
或者您可以使用hasNextDouble
方法检查输入中是否有可用的double
值。
答案 2 :(得分:0)
该程序产生所需的输出(只需将print语句包含在while循环中):
public static void main(String... args) {
double X = 0;
double Y = 0;
System.out.println("please enter the value of X-cordinate and Y cordinate :");
Scanner scn = new Scanner(System.in);
while (scn.hasNext()) {
X = scn.nextDouble();
Y = scn.nextDouble();
System.out.println(" the value of y is " + Y + "the value of x is " + X);
}
}
while循环不会终止(直到按Ctrl + C,或者终止java进程)。