编写程序以从用户获取各种数据值并以不同格式显示它。

时间:2016-08-08 14:49:18

标签: java

我是java的新手 我写了这个程序来显示航班信息

 import java.io.*;
 import java.util.Scanner;
 class Main
{
public static void main(String args[])
{
    int ticket;
    String name,destination;
    float fare;
    char tclass;
    Scanner in = new Scanner(System.in);
    System.out.println("Enter Flight name : ");
    name=in.nextLine();
    System.out.println("Enter Ticket No : ");
    ticket=in.nextInt();
    System.out.println("Enter Flight Fare : ");
    fare=in.nextFloat();
    System.out.println("Enter Travelling Class : ");
    tclass=in.next().charAt(0);
    System.out.println("Enter Source : ");
     String source=in.nextLine();
    System.out.println("Enter Destination : ");
    destination=in.nextLine();
    System.out.println("Flight Details : ");
    System.out.println("Flight Name : "+name);
    System.out.println("Ticket No : "+ticket);
    System.out.println("Flight Fare : "+fare);
    System.out.println("Class : "+tclass);
    System.out.println("Source : "+source);
    System.out.println("Destination : "+destination);
}

}

但打印输出时出错。 源字段为空,目标字段具有源

的数据
Flight Details : 
Flight Name : Emirates
Ticket No : 43190215
Flight Fare : 19433.94
Class : C
Source : 
Destination : Mumbai

这里mumbai实际上是源的值,但它会显示在目标字段

1 个答案:

答案 0 :(得分:2)

在您的程序中使用这段代码,

    System.out.println("Enter Travelling Class : ");
    tclass = in.next().charAt(0);
    in.nextLine();
    System.out.println("Enter Source : ");
    String source = in.nextLine();

实际上next()方法并没有消耗最后一个换行符,这就是您遇到此问题的原因。