JAVA (6) 루프 – for, while 문 + 중단, 계속


너무 맛있어요!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!

공부는 계속된다!
!
!
!
!

나는 매일 글을 쓰려고 노력한다

공부가 늦어서 하루에 다 쓰지 못하는 경우가 많습니다.

이 토끼 요즘 나랑 닮았어

(귀엽지 않은 나) 앞머리 없이 맨날 안경 끼고 앉아

이 그림은 내가 이미 쓴 모든 것에 넣어야 겠어요~!

리본

어떤 일 반복해서 실시제조에 사용

고정과 가변을 구별하는 것이 중요합니다.

for 루프, while 루프 및 do while 루프가 있습니다.

for 문과 while 문은 구조와 기능이 비슷하여 서로 변환이 가능합니다.

진술에

반복 횟수를 알고 있을 때 사용합니다.

중첩 for 문: 다른 for 문 안에 다른 for 문을 중첩할 수 있습니다.

        for (초기화; 조건식; 증감식) {
            // 조건식이 참인 경우 수행될 문장
        }


* for 문의 실행 순서

1) 초기화

2) 조건식이 참인지 확인

3) true인 경우 중괄호 { } 안에 있는 명령문을 실행합니다.

4) 세레머니 증감

5) 조건식 확인

5-1) 그래도 맞다면 3번으로 가세요.

5-2) 거짓이면 for문을 종료한다.

* 주의

– 조건식의 철자가 틀리면 { } 블록 안의 문장이 실행되지 않거나 무한 반복될 수 있습니다.

– 조건식이 생략되면 true로 간주되어 무한 루프가 됩니다.
(필요에 따라 사용 가능)

– 증감식은 i++, i– 외에도 다양한 표현을 추가할 수 있습니다.

예) *로 왼쪽 삼각형 만들기

더보기

package ch4_Scope;

public class EX_01_For {
    public static void main(String() args) {
        for (int i = 1; i < 6; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

while 문

반복 횟수를 알 수 없을 때 주로 사용

while도 중첩 가능조건식이 거짓이면 전체 명령문을 건너뜁니다.

∴ 처음부터 조건식이 거짓이면 전체 문장을 건너뜁니다.

초기화 또는 증분 표현식이 필요하지 않은 경우 for 문보다 while 문이 더 적합합니다.

while ( "조건식" ) {
    "조건식"의 연산결과가 true 인 동안, 반복될 문장
}


while 문의 실행 순서

1-1) 조건식이 거짓인 경우

2-1) while 문 탈출

1-2) 조건식이 참일 때

2-2) 블록 { }의 문장을 실행하고 다시 조건식으로 돌아갑니다.
(다시 반복하라)

do-while 문

while 문의 변형

조건식 및 중괄호 { } 순서 변경

중괄호 { } 안에 있는 문은 한 번만 실행되도록 보장됩니다.

do {
  "조건식"의 연산결과가 true 일 때 수행될 문장들 (처음 한 번은 무조건 실행)
} while ( "조건식" );

예) while 문: 1부터 10까지의 난수 추측

더보기

package ch4_Scope;

import java.util.Scanner;

public class _01_Loop_While {
    public static void main(String() args) {

        System.out.println("0~9까지의 숫자 하나 입력하세요 : ");
        Scanner scanner = new Scanner(System.in);
        int input = scanner.nextInt();

        int random = (int)((Math.random() *10) + 1);

        while (input !
= random) { System.out.println("틀렸습니다.
"); System.out.print("숫자를 하나 입력하세요 : "); input = scanner.nextInt(); } System.out.println("정답입니다.
"); } }

예) while과 do-while 비교: 결과는 어떻게 될까요?

더보기

package ch4_Scope;

public class EX03_LoopDoWhile {
    public static void main(String() args) {

        // 일반 while 문
        int i = 5;  // 초기화
        while (i < 5) {  // 조건식
            System.out.println("coding everyday " + i);
            i++;   // 증감식
        }

        System.out.println("-----------------------");

        i = 0;
        // do while 문
        i = 5;  // 초기화
        while (i < 5) {  // 조건식
            System.out.println("coding everyday " + i);
            i++;   // 증감식
        }

    }
}

부서지다
계속해

break: 자신을 포함하는 다음 것 루프 탈출

계속: 반복 중에 계속이 발생하는 경우 루프의 끝이동 다음 반복(건너뛰기)

실제 사례를 보는 것이 가장 좋습니다!
🙂

예) 선택

더보기

package ch4_Scope;

import java.util.Scanner;

public class EX_04_Break {
    public static void main(String() args) {
//         break 문은 자신이 포함한 가장 가까운 반복문 하나를 벗어난다.
int menu = 0; int num = 0; Scanner scanner = new Scanner(System.in); while(true) { System.out.println("(1) Square"); System.out.println("(2) Square root"); System.out.println("(3) log"); System.out.print("원하는 메뉴(1~3)를 선택하세요(종료:0) > "); String tmp = scanner.nextLine(); menu = Integer.parseInt(tmp); // 입력 받은 문자열을 숫자로 변환 if(menu == 0){ System.out.println("프로그램을 종료합니다"); break; } else if (!
(1 <= menu && menu <= 3)) { System.out.println("메뉴를 잘못 선택하셨습니다.
(종료는 0)"); continue; } System.out.println("선택하신 메뉴는 " + menu + "번입니다.
"); } } }

명명된 루프

중첩된 루프 앞에 이름을 넣고 break 및 continue 문에 이름을 지정하면

하나 이상의 반복을 중단하거나 반복을 건너뛸 수 있습니다.

예)

package ch4_Scope;

import java.util.Scanner;

public class EX_04_Break {
    public static void main(String() args) {
//         이름 붙은 반복문 : 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다

        Loop1 : for (int i = 2; i <= 9; i++) {
            for (int j = 1; j <= 9; j++) {
                if (j == 5)
                    break Loop1;
                System.out.println(i + " * " + j + " = " + i * j);
            }
            System.out.println();
        }

    }
}