JAVA_03_제어문_반복문

송지윤·2024년 2월 5일

Java

목록 보기
6/23

제어문

반복문

프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 특정 문장(코드)들을 반복해서 수행하도록 함

for문

끝이 정해져 있는 (횟수가 지정되어 있는) 반복문

[작성법]

for(초기식; 조건식; 증감식) {
조건식이 true라면 반복 수행할 코드
}

  • 초기식 : for문을 제어하는 용도의 변수 선언
  • 조건식 : for문의 반복 여부를 지정하는 식
    보통 초기식에 사용된 변수를 이용하여 조건식을 작성함.
  • 증감식 : 초기식에 사용된 변수를 for문이 끝날 때마다 증가 또는 감소시켜조건식의 결과를 변하게 하는 식

영어 알파벳 A 부터 Z 까지 한줄로 출력

public void ex3() {
	for (char ch = 65 ; ch <= 91 ; ch ++) {
		System.out.print(ch);
	}
}
for(int i = 'A'; i <= 'Z'; i++) {
	System.out.print((char)i);
	// 강제형변환
}
for(char i = 'A' ; i <= 'Z'; i++) {
	System.out.print(i);
	}

다 같은 값 출력됨

결과값
ABXDEFGHIJKLMNOPQRSTUVWXYZ

정수 5개를 입력 받아 합계 구하기

ex)
입력 1 : 10
입력 2 : 20
입력 3 : 30
입력 4 : 40
입력 5 : 50
합계 : 150

public void ex4() {

	int sum = 0;
	for (int i = 1; i <= 5 ; i++) {
		System.out.print("입력 " + i + " : ");
		int input = sc.nextInt();
		// input for문이 도는 동안 계속 대입됨
		sum += input;
	} System.out.print("합계 : " + sum);
}

1부터 20까지 1씩 증가하면서 출력

단, 입력 받은 수의 배수는 양쪽에 () 표시

ex)
괄호를 표시할 배수 : 3
1 2 (3) 4 5 (6) ... (18) 19 20

public void ex5() {
	System.out.print("괄호를 표시할 배수 : ");
	int input = sc.nextInt();
		
	for (int i = 1; i <= 20 ; i ++) {
		if (i % input == 0) {
			System.out.print("("+i+")");
		} else {
        	// else 안 써주면 숫자 한번씩 더 나옴
			System.out.print(i);
		}
	}
}

구구단 출력

public void ex7() {
	for (int dan = 2; dan <= 9 ; dan++) {
		for (int i = 1; i <= 9 ; i++) {
			System.out.printf("%d X %d = %2d  ",dan,i,dan*i);
		}
		System.out.println();
	}
}

숫자 세기 count

ex)
1부터 20까지 1씩 증가하면서
입력받은 수의 배수의 총 개수 출력
입력받은 수의 배수의 합계 출력

배수 입력 : 3
3 6 9 12 15 18 : 6개
3의 배수 합계 : 63

public void ex8() {
	System.out.print("배수 입력 : ");
	int input = sc.nextInt();
	int count = 0;
	int sum = 0;
	for (int i = 1; i <= 20 ; i++) {
		if (i % input == 0) { // input의 배수일 때
			count++;
			System.out.printf("%d ",i);
			sum += i;
		}
	}
	System.out.println(": " + count + "개");
	System.out.printf("%d의 배수 합계 : %d", input, sum);
}

while문

  • 별도의 초기식, 증감식이 존재하지 않고 복 종료 조건을 자유롭게 설정하는 반복문.

확실히 언제 반복이 끝날지는 모르지만 젠가 반복 조건이 false가 되는 경우 반복을 종료함.

[작성법]
while(조건식) {조건식이 true일 때 반복 수행할 구문}

public void ex1() {

	int input = 9;
		
	while(input != 0) {
		System.out.println("---------메뉴선택-------");
		System.out.println("1. 떡볶이");
		System.out.println("2. 쫄면");
		System.out.println("3. 김밥");
		System.out.println("0. 종료");
			
		System.out.print("메뉴 선택 >> ");
		input = sc.nextInt();
			
		switch(input) {
			case 1 : System.out.println("떡볶이를 주문했습니다."); break;
			case 2 : System.out.println("쫄면을 주문했습니다."); break;
			case 3 : System.out.println("김밥을 주문했습니다."); break;
			case 0 : System.out.println("메뉴 선택을 종료합니다."); break;
			default : System.out.println("잘못 입력하셨습니다.");
		}
	}
}

do ~ while문

do ~ while 문

do {
반복 수행할 코드
-> 무조건 한번은 수행
} while( 조건식 );

do while문 이용 문제

입력되는 모든 정수의 합 구하기
단, 0이 입력되면 반복 종료 후 결과 출력
-> 0이 입력되지 않으면 계속 반복

public void ex2() {
		
	int sum = 0;
	int input = 0;
	do {
		System.out.print("정수 입력 : ");
		input = sc.nextInt();
		sum += input;
	} while (input != 0);
		System.out.println("합계 : " + sum);
}

0개의 댓글