제어문 - do - while 문, while문

구름·2022년 11월 20일

Java_1

목록 보기
10/19

While 문

: if 문과 비슷하지만, while문은 조건식이 참인 동안. 즉 조건식이 거짓이 될때까지 블럭내의 문장을 반복한다.
while(조건식) { // 조건식의 연산결과가 참(true)인 동안, 반복될 문장들을 적는다

조건식이 이면 블럭안으로 들어가고 거짓이면 while문을 벗어난다.
블럭{}의 문장을 수행하고 다시 조건식으로 돌아간다. (조건식이 참이므로)

<<예제 : 1부터 몇까지 더해야 100을 넘지 않는지 알아내는 문제>>

		int sum = 0;
		int i = 0;
		//i를 1씩 증가시켜서 sum에 계속 더해나감 
        while(sum <= 100 ) {
			System.out.printf("%d - %d%n", i, sum );
			sum += ++i;
		}
		
		
	}

while문 에서 증감식을 처리하지 않으면 무한루프 되는 현상이 발생

for문으로 바꿀 수 있다.

기본 자료형은 반드시 초기값이 할당되어있어야한다.


Do - While 문

: 실행문을 조건과 상관없이 반드시 1번은 실행시킨다.
while : 조건을 만족해야지만 실행 블락을 실행한다.

	/* while문
	 초기식 
	 while (조건) {
	 실행블락 ;
	 증감식 ;
	 }
	 
	 */
	
	
	/* do while문 : 
	초기식;
	do { 
	 	실행블락 ;
	 	증감식;
 	} while (조건) ;
	 */
System.out.println("== do while 문 ==");
		a = 0;
		do {
			System.out.println(a + " ");
		}while(a < 0);

이 경우에도, do while은 0을 한번 실행 시킨다.
while의 조건에true를 넣을 경우, do - while문으로 무한루프가 가능하다.

<<예제>>

스캐너로 인풋 받은 값을 선택시 해당 내용을 이중 for문을 사용해서 출력하세요
4. 프로그램 종료 시 까지 무한 루프를 돌려서 작동
이외의 내용을 선택시 "잘못된 입력입니다. 1 ~ 4까지만 넣어주세요"

Scanner sc = new Scanner (System.in);
		
		int a;
		
		do {
			System.out.println("==================================================");
			System.out.println("1. 구구단출력 | 2. 19단 출력 | 3. 19단 중 7의 배수 출력  | 4. 프로그램 종료");
			System.out.println("==================================================");
			System.out.println(" 위 번호를 입력하세요>> ");
			a =sc.nextInt();
			
				if(a == 1) {
					System.out.println("1. 구구단 출력");
					for(int i = 1; i < 10; i++) {
						System.out.println();
						System.out.print("\n"+i +"단 출력"+ "\n");
						for(int j = 1; j < 10; j++) {
							System.out.println();
							System.out.print(i + "*" + j+ "=" + i * j);
						}
					}
				}else if (a == 2) {
					System.out.println("2. 19단 출력");
						for(int i = 1; i < 20 ; i++) {
							System.out.println();
							System.out.print("\n"+i +"단 출력"+ "\n");
							for(int j = 1; j < 20; j++) {
								System.out.println();
								System.out.print(i + "*" + j+ "=" + i * j);
							} 
						}
				}else if (a == 3) {
					System.out.println("3. 19단 중 7의 배수 출력");
					for(int i = 7; i < 20 ; i+=7) {
						System.out.println();
						System.out.print("\n"+i +"단 출력"+ "\n");
						for(int j = 7; j < i ; j++) {
							System.out.println();
							System.out.print(i + "*" + j+ "=" + i * j);
						}
					}
				}else if(a == 4) {
					System.out.println("4. 프로그램 종료");
					break;
				}
		}while(true);
		
		sc.close();
	
	}

}

<<실행 결과>>

if j == 3 이라면, j값 중에서 3의 값은 실행하지 않고 바깥 for문으로 다시 돌아가게함

continue

: 반복문 내에서 continue를 만나면 아래 실행 블락을 실행하지 않고 증감식을 작동한다.

profile
내가 보려고 하는 업데이트

0개의 댓글