2013-11-20 2 views
5

작은 게임을 작성하려고하지만 다시 재생하고 싶지 않은 경우 사용자에게 다시 재생하는 방법과 다시 재생하고 싶지 않은 경우 루프를 종료하는 방법을 고수했습니다. ..Java 루프를 종료하는 방법은 무엇입니까? 기본 추측 게임의 While-loop

import java.util.Random; 
import java.util.Scanner; 

public class Guessinggame { 

public static void main(String[] args) { 

    System.out.println("Welcome to guessing game! \n" + " You must guess a number between 1 and 100. "); 

    while (true) { 

     Random randomNumber = new Random(); 
     Scanner g = new Scanner(System.in); 

     int number = randomNumber.nextInt(100) + 1; 
     int guess = 0; 
     int numberOfGuesses = 0; 

     while (guess != number){ 

      System.out.print("Guess: "); 
      guess = g.nextInt(); 

      if (guess > number){ 
       System.out.println("You guessed too high!"); 
      }else if (guess < number){ 
       System.out.println("You guessed too low!"); 
      }else{ 
       System.out.println("Correct! You have guessed "+ numberOfGuesses + " times. \nDo you want to play again? (y/n) "); 

      } 
      numberOfGuesses++; 


     } 
    } 
} 

}

+0

루프를 종료하는 가장 좋은 방법은 '중단'을 사용하는 것입니다. 따라서 조건 (if)을 만들고 사용자가 다시 재생하기를 원한다면 체크하고, 그렇지 않으면 복귀를 중단하십시오 – k4sia

답변

11

당신은 전류 루프 나갈 break를 사용할 수 있습니다.

for (int i = 0; i < 10; i++) { 
    if (i > 5) { 
    break; 
    } 
    System.out.Println(i); 
} 

인쇄합니다 :

0 
1 
2 
3 
4 
5 

그러나, do-while 루프는 사용 사례에 대한 아마 더 좋다. 그들은 여전히 ​​재생되지 않을 경우 false이 변수를 설정하려면

5

변경

while(true){ 
    //At some point you'll need to 
    //exit the loop by calling the `break` key word 
    //for example: 

    if(/*it's not compatible with your condition*/) 
    break; 
} 

boolean userWantsToPlay=true; 
do{ 
    //the same as before 
} while (userWantsToPlay); 

는 어딘가에 사용자를 부탁드립니다.

다른 해결책은 코드를있는 그대로 유지하고 사용자에게 묻고 계속하기를 원하지 않는다고 말한 후 break;으로 전화하는 것입니다. 현재 루프에서 건너 뛰고 첫 번째 지점에서 다시 시작합니다 루프. 코드를 읽는 동안 프로그램 흐름을 추적하기가 더 어려울 수 있기 때문에 덜 바람직합니다. 특히 중첩 루프가 있거나 여러 개의 break 지점이있는 경우에 특히 그렇습니다.

0

while(true) 문을 do while 문으로 변경할 수 있습니다.

Scanner k= new Scanner(System.in); 

do{ 
// do sth here... 

//ask to user for continue or exit 
System.out.println("Continue/Break"); 
String answer = k.next(); 

}while(answer.equals("Continue")); 

루프를 종료하려면 break 문을 사용할 수 있습니다.

관련 문제