Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

반복문(while문) 본문

프로그래밍 언어/Java

반복문(while문)

세레프 2023. 3. 24. 07:29

 프로그램은 위에서 아래로 왼쪽에서 오른쪽으로 실행하는 흐름을 가지고 있다. 이러한 프로그램의 흐름을 제어하는 문법이 있는데, 이를 제어문이라고 한다. 반복문은 제어문의 일종으로, 정해진 조건에 따라 흐름을 반복하는 문법이며, 종류로는 while문과 for문이 있다.

 

 

반복문 - while문

 while문조건식이 true인 동안 명령블록을 반복하는 문법으로, 조건식은 true혹은 false의 결과값을 갖는 식인 비교연산식, 논리연산식이 오며, boolean변수의 값인 true,false가 올 수도 있다.

구조식 순서도
while(조건식){

조건이 참일때 반복할 명령 1;

}

명령 2

 위의 순서도는 while문의 순서도로, "조건식이 참일때동안 블록안에 있는 명령을 반복한다." 즉, 조건식이 true이면 계속해서 명령을 수행하며, false인 경우 while문을 종료한다.

 

 

package project0323;

public class Code2 {
	public static void main(String[] args) {
		int a = 1;
		while(a<=10) {
		System.out.println("while문을"+a+"번 출력했습니다.");
		a++;
		}
	}
}

 while문의 조건인 "a<=10"이 true일 동안 "while 반복문이 a번 출력되었습니다."를 출력하며, 증감식으로 변수 a값을 계속 변경하는 것을 볼 수 있다. 즉, a 값이 지속적으로 증가하다가, a = 10일때, while문이 종료가 되는 것이다.

 

 

 반복문 - do-while문

 do-while문은 while문처럼 조건식에 의해서 반복실행된다. 하지만 while문과 달리, 블록에 있는 반복할 문장을 수행한 후 조건을 검사한다. 즉 조건이 거짓이여도 1번은 실행한다는 뜻이다.

구조식 순서도
do{

    조건식이 참일때 반복할 명령 1;

} while(조건식);

명령 2

 

 위의 구조식은 do-while문의 구조식으로, do-while문블록 내부의 실행문을 우선 실행하고, 조건식에 따라서 반복실행을 계속할 지 결정하는 것을 확인 할 수 있다.

package project0323;

public class Code5 {
	public static void main(String[] args) {
		int a = 1;
		do {
			System.out.println("do-while문을"+a+"번 출력했습니다.");
			a++;
		}while(a<=10);
		
		System.out.println("프로그램 종료");
	}
}

 위의 소스코드 순서도를 보면 "do-while문이 a번 반복되었다"라는 문구가 출력되고, "a++"이 실행된 다음에, "a<=10"을 확인할 수 있다.

 그렇다면 변수 a에 11을 저장하면, 실행 결과는 어떻게 될까? "do-while문이 11번 반복되었다"가 출력이 되고 실행이 종료될 것이다.

 


while문을 이용한 중첩제어문

 while문의 블록 안에 제어문을 만드는 형태로 중첩 제어문(제어문의 블록안에 제어문을 사용하는 형태)을 만들어 낼 수 있다. 

package project0323;

import java.util.*;

public class Code4 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Random rm = new Random();
		
		int Rnum = rm.nextInt(100);
		System.out.println("숫자를 입력하세요(0~100)");
		int Snum = sc.nextInt();
		int count = 0;
		while(Rnum!=Snum) {
			if(Rnum > Snum) {
				System.out.println("Up");
				System.out.println("숫자를 입력하세요(0~100)");
				Snum = sc.nextInt();
			}
			else if(Rnum < Snum) {
				System.out.println("Down");
				System.out.println("숫자를 입력하세요(0~100)");
				Snum = sc.nextInt();
			}
		count++;
		}
		System.out.printf("최종답:%d, 답한 횟수:%d",Rnum,count);
	}
}

'프로그래밍 언어 > Java' 카테고리의 다른 글

배열  (0) 2023.03.28
break문과 continue문  (0) 2023.03.25
반복문(for문)  (0) 2023.03.23
조건문(switch문)  (0) 2023.03.22
조건문(if문)  (0) 2023.03.21
Comments