Я отладка следующей программы из часов пока я не могу найти, почему это Sanner не принимает входные данные для поля имениПропуск сканера?
import java.util.Scanner;
public class Student
{
int rollNo;
String name;
double percentageMarks;
static Scanner input = new Scanner(System.in);
public void accept()
{
System.out.print("Enter roll no: ");
rollNo = input.nextInt();
System.out.print("Enter Name: ");
name = input.nextLine();
System.out.print("Enter percentageMarks: ");
percentageMarks = input.nextDouble();
}
public void display()
{
System.out.println("Name: " +name);
System.out.println("roll no: " +rollNo);
System.out.println("Percentage marks: " +percentageMarks);
}
public static void main(String[] args)
{
Student s1 = new Student(), s2 = new Student();
s1.accept();
s2.accept();
if(s1.percentageMarks>s2.percentageMarks)
s1.display();
else if (s2.percentageMarks>s1.percentageMarks)
s2.display();
else
System.out.println("Both students has same marks");
}
}
Это генерируя такой:
Enter № по каталогу: 1 Впишите имя: Введите процентные данные:
Как видно, без учета ввода имени учащегося для ввода процентных баллов учащихся.
Вы можете прочитать это сообщение, которое я написал, чтобы уточнить ваши сомнения по поводу этой проблемы: [Использование 'nextInt()' перед 'nextLine()'] (https://christprogramming.wordpress.com/2014/01/30/java -common-errors-1 /) – Christian
Возможно, сканер принимает новую строку (от нажатия Enter) в качестве входного сигнала и, таким образом, переходит к следующей строке ввода. –