2017-10-16 3 views
-4

Je veux obtenir un résultat que si j'utilise une boucle for alors 'Monster' sort 10 fois. Mais 'Monster' est sorti continuellement. Pourriez-vous me dire quel est le problème? Merci d'avoir lu jusqu'à la fin :)La boucle ne sort pas

private static void fight() { 

    for(int i=0; i<10; i++) { 
    while (user.isalive() && enemy.isalive()) { 
     user.attack(enemy); 
     if (!enemy.isalive()) break; 
     enemy.attack(user); 
     System.out.println("------------------------------"); 
    } 

    if (user.isalive()) { 
     System.out.println("The monster is dead."); 
     System.out.println("------------------------------"); 
     user.money+=enemy.money; 

//   System.out.println(player.money); 
      System.out.println("I got 100 won"); 
      System.out.println("total won : "+user.money+"won"); 
        enemy.hp=50; 

    } 
    else { 
     System.out.println("I'm dead and the game is over."); 
     break; 
    }return; 
    } 

} 
+1

J'ai mis en minorité cette question car il n'y a aucune preuve de débogage effectué sur ce code. S'il vous plaît [modifier] votre question pour nous montrer ce que votre débogage a découvert, ainsi qu'une question spécifique sur une ligne de code spécifique. Voir: [Comment créer un exemple minimal, complet et vérifiable] (http://stackoverflow.com/help/mcve) et [Comment déboguer de petits programmes] (https://ericlippert.com/2014/03/05/how-to-debug-petits-programmes /). –

Répondre

1

Vous avez la déclaration de retour à la fin de l'if-else. Le retour est à l'intérieur de la boucle, et c'est peut-être la raison