2010-10-15 9 views
1

Je suis un étudiant de première année et un apprenant et accessoiriste à l'école. Quand je lance, il ne tient pas compte de la déclaration suivante:Java: le scanner n'est pas reconnu quand il est lancé

String Origin = scan.nextLine(); 

puis il va à la ligne suivante.

Voici la principale:

import java.util.Scanner; 

public class FlightTest 
{ 
    public static void main (String [] args) 
    { 
     Scanner scan = new Scanner (System.in); 
     Flight Flight1 = new Flight(); 

     System.out.print ("Airline Name: "); 
     String AirlineName = scan.nextLine(); 

     System.out.print ("Flight Number: "); 
     int FlightNumber = scan.nextInt(); 

     System.out.print ("Origin: "); 
     String Origin = scan.nextLine(); // There is a problem here 

     System.out.print ("Destination: "); 
     String Destination = scan.nextLine(); 
    } 
} 

C'est la classe

public class Flight 
{ 
    private String AirlineName; 

    private int FlightNumber; 

    private String Origin; 

    private String Destination; 

    public String setAirlineName() 
    { 
     String Name = AirlineName; 
     return Name; 
    } 

    public String getAirlineName() 
    { 
     return AirlineName; 
    } 

    public int setFlightNumber() 
    { 
     int Number = FlightNumber; 
     return Number; 
    } 

    public int getFlightNumber() 
    { 
     return FlightNumber; 
    } 

    public String setOrigin() 
    { 
     String Orig = Origin; 
     return Orig; 
    } 

    public String getOrigin() 
    { 
     return Origin; 
    } 

    public String setDestination() 
    { 
     String Desti = Destination; 
     return Desti; 
    } 

    public String getDestination() 
    { 
     return Destination; 
    } 

    public String toString() 
    { 
     String result = AirlineName + " flight number " 
       + FlightNumber + " leaves from " + Origin + " to " 
       + Destination + "."; 
     return result; 
    } 
} 
+0

Comment déterminez-vous qu'il ignore cette déclaration? Le débogueur? Le manque de ligne dans la console? Êtes-vous certain que vous avez recompilé? –

Répondre

2

parce scan.nextInt() ne pas utiliser la ligne, le prochain appel à scan.nextLine() est de retour à la fin de la ligne le numéro de vol était allumé, ce qui est probablement juste une nouvelle ligne.

Ajouter un autre appel à scan.nextLine()

System.out.print ("Flight Number: "); 
int FlightNumber = scan.nextInt(); 
scan.nextLine(); // get rid of rest of line 

System.out.print ("Origin: "); 
String Origin = scan.nextLine(); 

et je pense que les choses vont.

+0

Merci beaucoup !! Ça marche! :) –

+0

@ Woong-Sup Jung - content que ça marche. S'il vous plaît upvote et accepter la réponse –

+0

Comment puis-je le faire? Désolé, c'est la première fois que j'utilise ce site. –

0

et votre setter est faux, vous devez passer un paramètre.

private String airlineName; 
public String getAirlineName() { 
    return airlineName; 
} 
public void setAirlineName(String airlineName) { 
    this.airlineName = airlineName; 
} 

vous pouvez utiliser setter comme ce

Flight f = new Flight(); 

System.out.print ("Airline Name: "); 
f.setAirlineName(scan.nextLine());