2017-04-10 8 views
0

Also ich bin sehr neu in Java und ich versuche, dieses grundlegende Stück Code arbeiten zu bekommen. Wie Sie wahrscheinlich unten erzählen können, versuche ich nur, die Antwort zu geben, die ich auf der Benutzereingabe auf der Temperatur eingestellt habe.Basic Java Eingabe-Antwort

Aber egal die Eingabe Nummer, die gegeben ist, gibt es nur die letzte Antwort "Es friert draußen, ich bleibe in".

package ass4package; 

import java.util.Scanner; 

public class Assignment4 { 

    private static Scanner scan; 

    public static void main(String[] args) { 

     System.out.println("Enter current temperature :"); 

     scan = new Scanner(System.in); 
     int i = scan.nextInt(); 
     double temperature = 0; 
     for (; i < temperature; i++)  
     if (temperature <= 200 & temperature >= 90) {    
      System.out.println("It is really hot outside, we should go to the pool");        
     } 
     if (temperature <= 89 & temperature >= 70) {  
     System.out.println("We should have a bbq today");       
     } 

     if (temperature <= 69 & temperature >= 50) {     
     System.out.println("I should wear jeans today");       
     } 

     if (temperature <= 49 & temperature >= 30) {     
     System.out.println("I should wear a coat today");   
     } 

     if (temperature <= 29 & temperature >= 10) {     
     System.out.println("It is probably snowing, I should grab my sled");  
     } 

     if (temperature <= 10) {     
     System.out.println("Its freezing outside, Im staying in"); 
     } 
    } 
    } 
+0

Warum würde es sonst etwas ausdrucken? Sie delcare 'doppelte Temperatur = 0;' und dann ändern Sie den Wert nie irgendwo. Außerdem können Sie Ihre Anweisungen mit "else if" verketten. –

+0

Wenn ich doppelte Temperatur = 0 herausnehme; es gibt mir den Fehler "Temperatur kann nicht zu einer Variablen aufgelöst werden" Entschuldigung, sehr neu in Java, so dass ich wahrscheinlich klingen sehr dumm mit diesem lol –

+0

Das ist definitiv nicht der Weg, um darüber zu gehen. Ziehen Sie in Betracht, die for-Schleife für den Moment zu entfernen (sie dient eigentlich gar keinem Zweck, zumindest an dieser Stelle) und setzen Sie die Benutzereingabe in Ihre 'temperature'-Variable mit [' nextDouble() '] (http://docs.oracle .com/javase/7/docs/api/java/util/Scanner.html # nächsteDouble% 28% 29). Ich würde vorschlagen, Ihre if-Anweisung herauszufinden und richtig strukturiert, dann spielen Sie mit der for-Schleife. –

Antwort

0

Weil du var Temperatureingang immer 0 sein Kumpel

0

Ihre temperature Variable annehmen, um den Benutzer zugewiesen haben. Aber zugewiesen zu 0.

Auch was ist der Punkt, eine for-Schleife zu haben?

Sie benötigen diesen Code nur, um Ihre Aufgabe zu testen.

System.out.println("Enter current temperature :"); 
     Scanner scan = new Scanner(System.in); 
     int temperature = scan.nextInt(); 

       if (temperature <= 200 & temperature >= 90) {    
       System.out.println("It is really hot outside, we should go to the pool"); 

       } else if (temperature <= 89 & temperature >= 70) {  
       System.out.println("We should have a bbq today"); 

       } else if (temperature <= 69 & temperature >= 50) {     
       System.out.println("I should wear jeans today"); 

       } else if (temperature <= 49 & temperature >= 30) {     
       System.out.println("I should wear a coat today"); 

       } else if (temperature <= 29 & temperature >= 10) {     
       System.out.println("It is probably snowing, I should grab my sled"); 

       } else if(temperature <= 10) {     
       System.out.println("Its freezing outside, Im staying in"); 
       } 

Aber ich denke, wenn Sie Benutzer wollen besser halten Eingabe Eingabe es verwenden, in einem while. hoffe das hilft.

+0

@DevinP hoffe das hilft. Bitte (+1) wenn es dein Problem gelöst hat. –

0

Ich habe versucht, die vielen Probleme Ihres Codes zu lösen. - Zuerst müssen Sie das Schlüsselwort else aus der zweiten Unteranweisung if Anweisung einer if-Anweisung hinzufügen; - Zweitens sind die Klammern des for (; < Temperatur; i ++) Blocks nicht gut platziert, also habe ich diesen Block entfernt; -Third, die für (i < Temperatur; i ++) Block wird nie ausgeführt, wenn ich der Wert vom Benutzer eingegeben ist größer als 0

public static void main(String[] args) { 

      System.out.println("Enter current temperature :"); 
      Scanner scan = new Scanner(System.in); 

      double temperature = can.nextDouble(); 

       if (temperature <= 200 & temperature >= 90) {    
       System.out.println("It is really hot outside, we should go to the pool"); 

       } else if (temperature <= 89 & temperature >= 70) {  
       System.out.println("We should have a bbq today"); 

       }else if (temperature <= 69 & temperature >= 50) {     
       System.out.println("I should wear jeans today"); 

       } else if (temperature <= 49 & temperature >= 30) {     
       System.out.println("I should wear a coat today"); 

       }else if (temperature <= 29 & temperature >= 10) {     
       System.out.println("It is probably snowing, I should grab my sled"); 

       }else if (temperature <= 10) {     
       System.out.println("Its freezing outside, Im staying in"); 

       } 
     } 
+0

was ist der Zweck der Benutzereingabe, wenn Sie 'double temperature = 0;' immer auf Null initialisiert haben. –

+0

Vielen Dank für Ihre Hilfe, ich habe es an meinem Ende arbeiten lassen –