扫描仪跳过输入?

时间:2016-01-19 19:35:53

标签: java

我几个小时以来一直在调试以下程序但是我找不到为什么没有为字段输入名称

这是我的源代码:

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 roll no: 1
Enter Name: Enter percentageMarks: 

如图所示,如果没有允许输入学生姓名,则提示输入学生百分比标记。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

这是因为你首先拥有input.nextInt(),并且在完成之后它不会进入下一行。只需将整个第一行解析为Integer.parseInt(scanner.nextLine()),然后您将获得该名称的输入。