GitHub

https://github.com/Backcoder-June

BackCoder 기록 그리고 숙달

Back to the Java

while + true + if + break; 조건 나중에 주기!

Backcoder 2022. 6. 22. 18:32
int dice1; 
int dice2;
int dicesum; 
	while (dicesum != 5){
		dice1 = 1; 
		dice2 = 2; 
		dicesum = dice1 + dice2; 
        }

변수 값을 어디에서 선언하는지는 매우 중요하다. 

 

위의 경우, 반복문 바깥에서 변수들을 선언만 했고, 

while 의 조건으로 가져온 dicesum 은 구체적 값이 나중에 정해지기 때문에,  (아직 null 인 상태) 

조건을 줄 때 사용할 수가 없다. 

 

do-while 문의 경우엔  

do { } 문에서 여러 변수들의 값이 구체적으로 선언 된 이후에 while 조건을 정하기 때문에 

조건을 줄 때 그나마 편하게  변수들을 사용할 수 있다. 

 

하지만 무조건 최소 한 번은 실행되는 do-while 문의 특성. (조건을 충족했던 안했던) 

이래서는 안될 경우가 있을 것이다. 

 

이럴때, 편하게 while 문을 쓰고, 조건은 나중에 줄 수 있도록 하는 방법이 있으니,

true, if, break 의 활용이다. 

 

< for/while 반복문에 "true"주고 break;로 활용하기 >  유용한 기술! 

        while (true){ 			 	//무조건 무한 반복 
             int dice1 = (int) (Math.random() * 6) + 1;
             int dice2 = (int) (Math.random() * 6) + 1;
             int ssum = dice1 + dice2;


            if (dice1 + dice2 == 5) {
                System.out.println("첫주사위 : "+dice1 +", 두번째주사위 :  "
                + dice2+", 합 = 5 GAME OVER!");break;
            }	                   							 	//break 주기 
            else {System.out.println("첫주사위 : " + dice1 + ", 두번째주사위 : " 
            + dice2 + ", 합 = " + ssum);}
        }

 

=> 반복문에서 조건을 주지 않고, true 를 줌으로써 무조건 무한반복 
=> 대신 if 와 break 를 통해서 조건을 준다. -> if문에서 종료조건을 만드는 스킬 
=> while 조건문 안에 변수를 선언하기 어려울 때, 일단 true 던져주고 
조건문 안에서 변수들은 선언되므로 
if 문 에서 조건줄때는 변수들을 편하게 사용할 수 있다.  

 

< 이동문 > 
break -> 실행안하고 반복문이 끝나는 지점으로 이동 - 거기서 끝냄 
continue -> 실행안하고 반복문이 시작하는 지점으로 이동 - 남아있는게 있으면 다시 계속 돌림 
return ->   return 도 이동문 이다.
    public static void ret( ) {
        System.out.println("test시작");
        if(true){return;}                                  // 되돌아가. 이 메소드 불렀던 곳으로. 
        System.out.println("test종료");}              // 메소드의 남은 부분 실행하지 않아도돼.