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종료");} // 메소드의 남은 부분 실행하지 않아도돼.
'Back to the Java' 카테고리의 다른 글
배열을 품은 배열 - 이차 배열 (0) | 2022.06.23 |
---|---|
참조형 DataType, Stack 과 Heap 메모리 저장 (0) | 2022.06.22 |
Back to the Basic 기본을 다잡자 2 (0) | 2022.06.21 |
Back to the Basic 기본을 다잡자 (0) | 2022.06.21 |
OOP 객체를 지향하는 프로그래밍을 지향하자 (0) | 2022.06.12 |