본문 바로가기

콤퓨타/Programming) 왕초보 자바

25. (Loops and Conditions) Do While Loop

Do-While Loop: always excutes at least once  even if the condition is false 

컨디션이 거짓이라도 최소한 한번은 실행된다.

 

public class App {

	public static void main(String[] args) {

		boolean loopCondition = false;

		do {
			System.out.println("안녕하시렵니까? ");
		} while (loopCondition);

	}
}

 

loopCondition이 거짓인 상황에서 실행하면 

출력은 단 한번만 한다.

 

하지만 조건을 참으로 둔다면... 

 

public class App {

	public static void main(String[] args) {

		boolean loopCondition = true;

		do {
			System.out.println("안녕하시렵니까? ");
		} while (loopCondition);

	}
}

 

안녕하시렵니까 무한굴레... 

아까  password loop 만들때  while을 썼고, while(true) 일때 무한의 굴레에 빠져봤기 때문에

그리고 그 무한의 굴레가 너무 비주얼 쇼크였기 때문에 

while은 조심해야겠다는 생각이 든다;;;

+ loopCondition일 경우 (이 경우에는 true) 
그러니까 while(true) 라는 말과 같고
그말은 영원히라는 말이구나
그때 안녕하시렵니까 출력 = 무한출력 이말이군

 

 

만약에 참거짓 boolean말고 int로 바꾼다면 

public class App {

	public static void main(String[] args) {

		int count = 0; 
		
		do {
			System.out.println("안녕하시렵니까? ");
		count++; 
		
		} while (count < 10);

	}
}

 

카운트가 0부터 시작하고, 카운트가 1씩 커지며, 10미만일경우에만 작동한다 라는 말이구만? 

그러하다

 

근데 만약에 애초에 시작하는 조건이 틀렸다면? 

public class App {

	public static void main(String[] args) {

		int count = 12; 
		
		do {
			System.out.println("안녕하시렵니까? ");
		count++; 
		
		} while (count < 10);

	}
}

 

count가 10 미만일 경우에만 작동하는데 

애초에 int 변수 값이 12여. 

이 경우, Do While Loops는 최소 1번 작동한다고...

 

그러하다...

 

그 뒤로 선생님이 로직에 대해서 한참 설명을 하다가. 

(초보는 귀에 듣고 흘리는...;;) 

다시한번 짜주더니만 뭐가 다른지 한번 보라고... 

public class App {

	public static void main(String[] args) {

		int count = 0;

		System.out.println("First loop: ");

		do {
			System.out.println("안녕하시렵니까? " + count);
		} while (count++ < 5);

		System.out.println("Second loop:");

		count = 0;

		do {
			System.out.println("안녕하시렵니까? " + count);
			count++;
		} while (count < 3);

	}
}

 

굳이 굳이 first loop와 second loop로 나누어 주셨는데 선생님 ㅠㅠ 

잘 모르겠어요 ㅠㅠ 그냥 생각한대로 나왔는뎅; 

 

그러하다............

 

 

초보라서 디테일한건 잡기 너무 어렵다. 

그래서 선생님이 설명해줘도 그냥 

엥 당연한거 아닌가? 이러거나 아니면 엥... 무슨말이지;;; 이러고 그냥 지나감

 

+출력 전에 증가 하느냐, 출력 후에 증가하느냐를 구분하는거임. 
이거는 내가 추가로 좀 더 연습하고 공부해얄듯.