본문 바로가기

Programming/Java

[JAVA] 반복문-while,do-while

반복문에 대해 알아보겠습니다.

반복문에는 크게 while문 for문이 있습니다.

조건문에 이어 반복문도 제가 제일 좋아하는 문입니다.

while문과 for문의 차이는

 

while문의 같은 경우는

 -몇 번 반복할지 모를 때 사용하시는 게 좋고 무한하게 사용하고 싶을 때 좋습니다.

while문의 코드는

while(조건식) {
	수행할 문장
}

이렇게 쓸 수 있으며 조건문과 다른 점은 조건식이 false가 될때까지 계속 반복한다는 것이다. 예를 들어보겠다

public static void main(String[] args){
		System.out.println("좋은 아침입니다.");
}

이 예제를 출력하면 "좋은 아침입니다." 가 한번 출력될 것이다.

하지만 100번 1000번 출력하고 싶으면 저걸 100번 1000번 사용하는 방법도 있지만

언제 그걸 다 하겠나 그래서 생긴게 반복문이다 우린 그중 while문을 알아가고 있는 것이다.

int i = 1;
while(i<=100){
	System.out.println("좋은 아침입니다.");
    i++;
}

이 예제를 실행해보면 "좋은 아침입니다."라는 문구가 100번 출력된다.

100번 써야할 것을 이렇게 간단히 쓸 수 있다 신기하지 않은가?

i++;은 증감연산자이다  저게 없으면 무한 반복이 실행된다. 한번 연산자를 빼고 실행해도 되는데 안 하는 걸 추천한다.

무한 반복이야기를 했는데

while은 무한 반복문으로 만들 수도 있다.

조건식에 true를 넣어주면 계속 돌 것이다.

while(true){
	System.out.println("좋은 아침입니다.");
}

여기서 의문점이 든다 이 무한 반복문을 어디에다가 쓰지?

일상생활에서도 많이 볼 수 있다 예를 들면 요즘 음식점이나 카페 여러 군대를 가도 키오스크라는 기계가 있을 것이다

기계에서 주문을 하면 메뉴 고르고 결제하고 다시 처음 화면으로 돌아간다.

손님이 적게 올 떄도 있고 많이 올 때도 있는데 이걸 어떻게 정할 수 없지 않은가

그래서 이럴떄 무한 반복문으로 처리하면 손님이 얼마나 오든 상관이 없다

대신 무한 반복문을 쓸떄는 종료하는 조건문을 꼭 만들어 줘야 한다.

public class Test03 {
	public static void main(String[] args) {

	
		Scanner sc = new Scanner(System.in);
        
		while(true) {
			System.out.println("===메뉴===");
			System.out.println("1. 커피");
			System.out.println("2. 아이스티");
			System.out.println("3. 라뗴");
			System.out.println("0. 종료");
			System.out.println("입력: ");
			int num = sc.nextInt();

			if(num==0) {//종료 조건
				break;
			}

			else if(1<=num && num<=3) { //유효성 검사  제대로 입력했다면
				System.out.println("메뉴 출력");
			}else  {//잘못 입력했다면
				System.out.println("없는 메뉴입니다.");
			}
		}
	}
}

예제를 보겠다 처음 보는 Scanner라는 것이 있는데 이건 가볍게 생각하면 사용자에게 입력을 받는 일종의 클래스다

입력을 받는 것만 알아두고 자세한 건 추후에 다루겠다.

충분히 이해하실 거라 생각하겠다 어려운 예제는 아니니까

 

다음으로 do-while문이 있다.

while문을 제대로 이해하셨다면 이 정도는 쉽다.

do{
	실행문

}while(조건식);

while문의 같은 경우는 while문의 조건이 참이어야 실행되는데

do-while문은 무조건 한 번은 실행되는 반복문이다