2017-03-25 2 views
-5

Wenn ich das Programm starte, druckt es die ersten beiden Fragen und es lässt die Benutzereingabe, aber wenn es die Frage des Hypothekentyps druckt, überspringt es die Benutzereingabe und geht, um die nächste Frage zu drucken. Kann jemand helfen, mit dieser ich einige der anderen Korrekturen ausgesehen haben, aber sie haben nicht viel Sinn machen, da ich nur habe gerade Programmierung ThanksProgramm springt nextLine

import java.util.Scanner; 
public class LoanConversion { 

    public static void main(String[] args) { 
     menu(); 
     Scanner scan = new Scanner(System.in); 

     System.out.println("Enter the type of loan: Secured or Unsecured"); 
     String LoanType = scan.nextLine(); 

     if (LoanType.equals("secured")) { 
      System.out.println("Enter the duration you want to borrow this in years:"); 
      int LoanDuration = scan.nextInt(); 

      System.out.println("Enter the type of mortgage you currently have: Endowment or Repayment"); 
      String Mortgage = scan.nextLine(); 

      System.out.println("Enter the amount you want to borrow:"); 
      int LoanAmount = scan.nextInt(); 

      System.out.println("Enter the value of your house?"); 
      int HouseValue = scan.nextInt(); 
     } 
    } 

    private static void menu() { 
     Scanner scan = new Scanner(System.in); 
     //introduction and help for the program 
     System.out.println("Welcome to the Loan Application System"); 
     System.out.println("Do you want to view the help on using this program?"); 
     System.out.println("Please answer Y or N"); 

     String help = scan.nextLine(); 

     if(help.equals("Y")) { 
      System.out.println("----------HELP----------"); 
      System.out.println("HELPHELPHELPHELPHELPHELP"); 
      System.out.println("----------HELP----------"); 
     } 
    } 
} 

Antwort

0

Sieht aus wie Sie \n nach der Lektüre int Eingang beseitigen müssen.

Benutzereingabe sieht wie folgt aus Daten eingegeben -> Presse Enter -> nach Drücken der Eingabetaste, sieht echt Eingabe wie:

13 \ n

Wenn Sie nextLine() verwenden -> es nimmt volle Linie:

13 \ n

Wenn Sie mit nextInt()13 Teil nur Nummer zu lesen sind, also nach dieser Sie hinterlassen haben:

\ n

Sie benötigen diese restlichen neue Liniensymbol verbrauchen:

System.out.println("Enter the duration you want to borrow this in years:"); 
int LoanDuration = scan.nextInt(); 
scan.nextLine(); // this one line takes extra `\n` 
+0

kann ich den Grund dieser downv kennen Anmerkungen? –

+0

Das hat funktioniert Danke :) –

+0

@GlenGriffiths müssen Sie es nach jedem 'nextInt() verwenden' –