以下代码是一个简单的Java程序,我只是获得学生详细信息的输入,但是该程序不执行任何操作,只是停留在这种状态,没有编译错误或不接受任何输入
import java.util.Scanner;
public class Scannerexample {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int Rollno = scan.nextInt();
String firstname = scan.nextLine();
String lastname = scan.nextLine();
String Department = scan.nextLine();
Boolean Result = scan.hasNext();
char gender = scan.next().charAt(0);
System.out.println("Enter Rollno "+ Rollno);
System.out.println("Enter Firstname "+ firstname);
System.out.println("Enter Lastname "+ lastname);
System.out.println("Enter Department "+ Department);
System.out.println("Enter Result "+ Result);
System.out.println("Enter Gender "+ gender);
scan.close();
}
}
答案 0 :(得分:2)
每次调用scan.nextSomething
等待输入。因此,您编写程序的方式就是等待所有字段的输入,然后打印它们。尝试键入一些字段,然后按Enter键最后查看结果。
您可能想要的东西是这样的:
System.out.println("Enter rollno: ");
int rollno = scan.nextInt();
System.out.println("You entered rollno: "+ rollno);
也有一些Java约定很好,使代码可读:)例如,变量以小写字母开头,类在CamelCase中
答案 1 :(得分:1)
因此,您每次调用代码
scan.nextLine();
程序等待您的输入,直到您按下“ Enter”为止。
因此,如果您想在Input之前写点东西,就必须这样做:
System.out.print("Enter Rollno: ");
int rollno = scan.nextInt();
System.out.print("Enter Firstname: ");
String firstname = scan.next();
// Any more.
请注意,您只使用'print()'而不是'println()',这样您的输入就在同一行上。 还可以使用 scan.next()来仅捕获输入,而不是终端中的完整行。
答案 2 :(得分:0)
请谨慎使用scan.next()或scan.nextLine()
System.out.print("Enter Rollno: ");
int rollno = scan.nextInt();
System.out.print("Enter Firstname: ");
String firstname = scan.next();
System.out.println(firstname);
// Any more.
System.out.print("Enter Lastname: ");
String lastname = scan.next();
System.out.println(lastname);
在这种情况下,如果将Firstname输入为:John Doe,则将不允许您输入Lastname,因为它将读取行中的下一个字符串。 scan.next()读取字符串直到“空格”,然后另一个scan.next()将读取下一个字符串直到下一个“空格”。