2016-05-22 18 views
-1

Ich habe eine Funktion, die z. B. Zahlen zeilenweise liest und die Summe dieser Zahlen berechnet. Der Benutzer gibt die Zahlen ein, eine Zahl pro Zeile, und wenn 'Null' eingegeben wird, bricht das Programm ab und gibt das Ergebnis aus. Zum Beispiel:Wie man ein Programm bricht, wenn die Eingabe leer ist

>>8 >>5 >>4 >> The result is 17

Wie kann ich tun, dass das Programm bricht, wenn die Eingabe leer ist und das Ergebnis geben?

+0

einig Flusskontrolle gelten: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/flow.html – zapl

+1

Durch die Prüfung, ob die Eingabe des Benutzers leer ist. Allerdings sind reine Code-Schreiben Anfragen off-topic auf Stack Overflow - wir erwarten Fragen hier beziehen sich auf * spezifische * Programmierung Probleme - aber wir wird glücklich helfen Ihnen, es selbst zu schreiben! Sagen Sie uns [was Sie versucht haben] (http://stackoverflow.com/help/how-to-ask), und wo Sie stecken bleiben. Dies wird uns auch helfen, Ihre Frage besser zu beantworten. –

+0

@Elliott Frisch danke dafür. Die Sache ist, dass ich von meinem Handy geschrieben habe, deshalb konnte ich keinen guten Beitrag bekommen. Es tut uns leid. – Felipe

Antwort

0

Dies ist der Code, den ich mit Scanner gedacht. Der Kommentar im Code ist, wo ich denke, dass Sie sich versaut haben, Schlüsselbereiche und Dinge, die Sie gefragt haben.

public static void sumInputs(){ 
    Scanner data=new Scanner(System.in); 
    ArrayList <Double> allNumbers=new ArrayList<>(); 
    while(true){ 
     System.out.print("Number:"); 
     try{ 
      //IMPORTANT: Notice I use "nextLine" and not "next", because next will wait till user inputs something not null 
      //and ignours the "enter" key pressed, while "nextLine" executes when the user presses the key "enter" regardless 
      //of whether there is input. 
      //I would imagine this is your problem 
      String number=data.nextLine(); 

      //The part you are looking for 
      //Right here is the part you are looking for 
      if(!number.isEmpty()){ 
       //what to do if it is not null (store the numbers 
       //in an ArrayList). 
       allNumbers.add(Double.parseDouble(number)); 
      }else{ 
       //add up all the numbers if it is null 
       double sum = 0; 
       for(double i : allNumbers) { 
        sum += i; 
       } 
       System.out.println("The result is "+ sum); 
       System.exit(0); 
      } 
     }catch(InputMismatchException e){ 
      System.out.println("Not number"); 
     } 
    } 
} 
+0

genau das habe ich gebraucht, danke! – Felipe

0
string mystr; 
    getline(cin,mystr); 
    if(mystr.empty()) 
//do stuff 
    else 
//do stuff 

Ich bedaure tought dies eine C++ Frage war, als ich sah >> sowieso hier ist die Java-Version

Scanner scanner = new Scanner(System.in); 
     String text = scanner.nextLine(); 
     if(text.isEmpty()) 
      //do stuff 
     else 
      //do stuff 
Verwandte Themen