2017-11-16 1 views
0

Für die folgenden habe ich eine schwierige Zeit zu verstehen, wie meine Benutzereingabe von (Tage) zu verwenden und es in der letzten Zeile verwenden, um die Anzahl der Stunden und Minuten basierend auf zu berechnen die Benutzereingabe von (Tage).Wie Benutzereingaben später in einer anderen Methode verwenden

import java.util.Scanner; 

public class LearnScanner { 
    public static void main (String[] args) { 
     first(); 
     next(); 
     third(); 
    } 
    public static void first() { 
     Scanner input = new Scanner(System.in); 
     System.out.println("Welcome to Vacation Planner!!"); 
     System.out.print("What is your name?"); 
     String name = input.nextLine(); 
     System.out.print("Nice to meet you "+name +", where are you travelling to?"); 
     String destination = input.nextLine(); 
     System.out.print("Great! "+destination +" sounds like a great trip"); 
    } 
    public static void next() { 
     Scanner input = new Scanner(System.in); 
     System.out.print("How many days are you going to spend travelling?"); 
     String days = input.nextLine(); 
     System.out.print("How much money in USD are you planning to spend on your trip?"); 
     String budget = input.nextLine(); 
     System.out.print("What is the three letter currency symbol for your travel destination?"); 
     String currency = input.nextLine(); 
     System.out.print("How many " + currency + " are there in 1 USD?"); 
     String currencyConversion = input.nextLine(); 
    } 
    public static void third() { 
     String days; 
     String hours = days * 24; 
     String minutes = hours * 60; 

     System.out.println("If your are travelling for " + days + " days that is the same as " + hours + " hours or " + minutes + " minutes"); 
    } 
} 
+0

Was passiert, wenn Sie es so machen, wie Sie es gerade tun? Wenn Sie einen Fehler erhalten, teilen Sie bitte die Fehlermeldung mit. – Antimony

+0

Fehler (36,28) Java: '.class' erwartet Fehler (36,33) Java: keine Anweisung * Zeile 36 ist: String Stunden = Tage * 24; –

Antwort

0

Machen Sie Ihre next() Methode Rückkehr String, nicht nichtig.

public static String next() { 
    Scanner input = new Scanner(System.in); 
    System.out.print("How many days are you going to spend travelling?"); 
    String days = input.nextLine(); 
    System.out.print("How much money in USD are you planning to spend on your trip?"); 
    String budget = input.nextLine(); 
    System.out.print("What is the three letter currency symbol for your travel destination?"); 
    String currency = input.nextLine(); 
    System.out.print("How many " + currency + " are there in 1 USD?"); 
    String currencyConversion = input.nextLine(); 
    return days; 
} 

Und dann in Ihrer third() Methode, um die folgende Codezeile ändern:

String days; 

mit

int days = Integer.valueOf(next()); 

ändert auch die nächsten zwei Zeilen Code mit dem folgenden:

int hours = days * 24; 
int minutes = hours * 60; 
+0

Das hat es behoben! Vielen Dank! Noch eine Frage, wenn ich zu den "String hours = days * 24" komme; es gibt jetzt einen Fehler von: Java: schlechte Operandentypen für den binären Operator "*" erster Typ: java.lang.String zweiter Typ: int ++ Ich nehme an, dass ich einen einfachen mathematischen Fehler in der Art habe, wie ich mich eingerichtet habe die Codezeile? –

+0

Lief dieses Mal ohne Fehler! Es wiederholte jedoch die next() -Methode, bevor mit der letzten fortgefahren wurde. –

0

Erstens scheint es, dass das Programm nicht einmal erfolgreich kompiliert werden sollte. Das Objekt 'days' in third() hat den Typ String. Es ist nicht möglich, ein String-Objekt mit einem numerischen Wert 24 zu multiplizieren. Dito auch für Minuten und Stunden in der nächsten Zeile.

Auch "Tage" wird in next() akzeptiert und als solche ist eine lokale Variable. Es hat keine Bedeutung in dritten().

Vielleicht könnte dies helfen.

import java.util.Scanner; 

public class LearnScanner 
{ 
    static String days = null; 

    public static void main(String[] args) 
    { 

     first(); 
     next(); 
     third(); 
    } 

    public static void first() 
    { 

     Scanner input = new Scanner(System.in); 
     System.out.println("Welcome to Vacation Planner!!"); 
     System.out.print("What is your name?"); 
     String name = input.nextLine(); 
     System.out.print("Nice to meet you " + name + ", where are you travelling to?"); 
     String destination = input.nextLine(); 
     System.out.print("Great! " + destination + " sounds like a great trip"); 
    } 

    public static void next() 
    { 

     Scanner input = new Scanner(System.in); 
     System.out.print("How many days are you going to spend travelling?"); 
     days = input.nextLine(); 
     System.out.print("How much money in USD are you planning to spend on your trip?"); 
     String budget = input.nextLine(); 
     System.out.print(
       "What is the three letter currency symbol for your travel destination?"); 
     String currency = input.nextLine(); 
     System.out.print("How many " + currency + " are there in 1 USD?"); 
     String currencyConversion = input.nextLine(); 
    } 

    public static void third() 
    { 

     String hours = String.valueOf(Integer.valueOf(days) * 24); 
     String minutes = String.valueOf(Integer.valueOf(hours) * 60); 

     System.out.println(
       "If your are travelling for " + days + " days that is the same as " 
         + hours + " hours or " + minutes + " minutes"); 
    } 

} 
+0

Danke! Das erscheint mir jetzt logisch. Nachdem ich die vorgeschlagenen Änderungen vorgenommen habe, erhalte ich den folgenden Fehler: java: Symbolsymbol kann nicht gefunden werden: Variable Tage Standorte: Klasse LearnScanner –

Verwandte Themen