2017-11-13 2 views
-1

Ich habe einen einfachen Spielautomat entworfen, der eine While-Schleife verwendet. Aus irgendeinem Grund bricht die Schleife immer am Ende eines Zyklus. Ich möchte, dass die Schleife ausgeführt wird, nachdem die Gewinne angezeigt wurden, wenn der Benutzer eine Wette eingibt. Am Ende der Schleife wird die Wette neu vergeben, aber die Schleife bricht trotzdem.Warum wird diese Schleife nicht mehr ausgeführt? (java)

//declarations 
int tokens = 50; 
int bet; 
int winnings; 
int slot1=0; 
int slot2=0; 
int slot3=0; 
Scanner scan = new Scanner(System.in); 
Random generator = new Random(); 

//initializatons 
System.out.println("You have "+tokens+" tokens"); 
System.out.println("How much do you want to bet?"); 
bet = scan.nextInt(); 

tokens = tokens-bet; 

    while(bet>0&&tokens>0){ 
    slot1=generator.nextInt(9); 
    slot2=generator.nextInt(9); 
    slot3=generator.nextInt(9); 
    bet=bet-bet; 
} 

System.out.println((slot1)+"\t"+(slot2)+"\t"+(slot3)); 

if(slot1 == slot2 && slot2 == slot3) { 
    winnings = (10*bet); 
    System.out.println("Jackpot! You won "+winnings+" tokens!"); 
    System.out.println("Bet again?"); 
    bet = scan.nextInt(); 
    tokens = tokens+bet; 
} 
else if(slot1==slot2 || slot2 == slot3) { 
    winnings = (2*bet); 
    System.out.println("You win 10 tokens!"); 
    System.out.println("Bet again?"); 
    bet = scan.nextInt(); 
    tokens= winnings+tokens; 
} 
else { 
    System.out.println("Bet again?"); 
    bet= scan.nextInt(); 
} 
scan.close(); 
+0

Können Sie eine detailliertere Aufschlüsselung, wo das Problem zur Verfügung stellen ist, und auch einige Beispielausgabe (und erwartete Ausgabe)? – roelofs

+0

Alle interessanten Dinge, einschließlich der gesamten Ausgabe, finden nach der letzten Iteration der Schleife statt. Woher weißt du, ob es mehr als einmal läuft? –

Antwort

1
while(bet>0&&tokens>0){ 
    slot1=generator.nextInt(9); 
    slot2=generator.nextInt(9); 
    slot3=generator.nextInt(9); 
    bet=bet-bet; 
} 

Am Ende dieses Codes Sie haben: bet=bet-bet; was bedeutet 0, so dass Ihre Schleife bricht, weil Ihre Schleife ausgeführt wird, wenn bet > 0 aber bet -bet = 0

Verwandte Themen