2016-04-07 2 views
-2

Also brauche ich die Anweisungen in der While-Schleife zu wiederholen, bis der Benutzer 4 (die das Programm beendet) eingeben, aber wenn ich versuche, das Programm auszuführen, wird nichts auf den Bildschirm ausgegeben (aber es kompiliert einfach gut). Warum sollte es das tun? Diese Antwort ist wahrscheinlich wirklich einfach, aber jede Hilfe wäre wirklich willkommen!Java-Programm hat keine Ausgabe, wenn eine switch-Anweisung innerhalb einer while-Schleife verwendet wird?

public class Driver 
{ 
public static void main(String[] args) 
{ 
    Scanner keyboard = new Scanner(System.in); 
    int answer; 
    boolean bool = true; 

    while(bool); 
    { 
     System.out.println("\n\tGeometry Calculator\n" + 
          "\t1. Calculate the Area of a Circle\n" + 
          "\t2. Calculate the Area of a Rectangle\n" + 
          "\t3. Calculate the Area of a Triangle\n" + 
          "\t4. Quit\n"); 
     System.out.print("\tEnter your choice (1-4): "); 
     answer = keyboard.nextInt(); 

     switch(answer) 
     { 
      case 1: 
       System.out.println("\n\tCalculating the area of a circle..."); 
       break; 
      case 2: 
       System.out.println("\n\tCalculating the area of a rectangle..."); 
       break; 
      case 3: 
       System.out.println("\n\tCalculating the area of a triangle..."); 
       break; 
      case 4: 
       System.out.println("\n\tQuiting..."); 
       System.exit(0); 
       break; 
      default: 
       System.out.println("\n\tPlease enter a number between 1 and 4."); 
     } 

     if(answer == 4) 
      bool = false; 
    } 
} 
+7

Entfernen Sie das Semikolon nach dem 'while' Loop-Zustand. – rgettman

+0

@Grettman Wow, es funktioniert perfekt, was für ein dummer Fehler. Vielen Dank! – thelonewanderer

+0

Ihre 'bool'-Variable ist momentan redundant: Sie können sie nicht nur durch' while (true) 'und' if (answer == 4) break ersetzen, Sie können auch das 'if (answer == 4)' entfernen, seit du 'System.exit' in' case4'. Alternativ können Sie die Bedingung 'if (answer == 4) 'entfernen und' System.exit (0) 'durch' bool = false' ersetzen. –

Antwort

1

Sie haben einen kleinen Fehler. Sie haben hinzugefügt; nach der While-Schleife. Löschen Sie es einfach. Ihr Code sollte

sein.
while(bool) 
Verwandte Themen