2016-06-04 9 views
-1

Ich habe ein Hauptmenü in meinem Code erstellt. Wenn der Benutzer q eingibt, möchte ich, dass der Code nicht mehr ausgeführt wird. Stattdessen zeigt es nur noch das Menü, welchen Code soll ich verwenden, um dies zu stoppen. Wenn Sie einen anderen Buchstaben drücken works.Thank SieWie man aus einem Programm in Java ausfällt?

import java.util.Random; 

    public class Aaa { 
     AQAConsole2016 console = new AQAConsole2016(); 
     Random random = new Random(); 
     int boardSize; 
     boolean moveIsValid; 

     char [][] board; 
     int move; 
     char choice; 
     String playerName="Human"; 
     String player2="Computer"; 
     public Aaa() { 




      boardSize = 6; 

      do { 
       displayMenu(); 
       choice = getMenuChoice(playerName); 
       switch (choice) { 
       case 'p' : playGame(playerName, boardSize); 
       break; 
       case 'e' : playerName = getPlayersName(); 
       break; 
       case 'c' : boardSize = changeBoardSize(); 
       break; 
       case 'm' : Multiplayer(boardSize,playerName,player2); 
       break; 
       case 'r' :readBoard(board,boardSize); 
       break; 
       case 'q' : quit(); 


       } 
      }while (choice!='p'||choice!='e'||choice!='c'||choice!='m'||choice!='r'||choice!='q'); 
     } 
     void quit(){ 


    } 
+0

Sie brauchen kein 'quit' Methode, verbringen nur mehr Gedanken in Ihre' while 'Schleife und why' while (Wahl! = 'p' || Wahl! = 'e' || Wahl! = 'c' || Wahl! = 'm' || Wahl! = 'r' || Wahl! = 'q') 'wird immer wahr sein. – Tom

+0

@Debugging der While-Schleife ist endlos. Werfen Sie einen Blick [boolesche Algebra] (https://en.wikipedia.org/wiki/Boolean_algebra), um den Fehler zu verstehen, den Sie in der while-Schleife gemacht haben. Einfach aus der Schleife zu treten würde ausreichen, um aufzuhören. – Paul

+0

Ich stimme für das Schließen dieser Frage als Off-Topic ab, weil sie zu lokal ist. Die Fragen sollen auch anderen Menschen helfen, nicht nur dem Fragesteller der Frage – Paul

Antwort

0

dies nicht nur zur Arbeit gehen, weil

case 'q' : quit(); nur ein Aufruf einer Methode, das heißt, wenn das Verfahren durchgeführt wird, um die zurück tun, während ...

Sie stattdessen brauchen eine boolean Bedingung hinzuzufügen, wenn das Optionsmenü ausgewählt wird, kann geändert werden ...

so etwas wie

tun
while (!exit); 

wo Ausfahrt eine boolean Variable ...

und Sie in der Void-Methode kann:

void quit(){ 
    //Do your stuff before exit 
    exit=true; 
} 
Verwandte Themen