에듀테크 부트캠프

자바 반복문과 제어문 완벽 정리: for, while, switch, break, continue 그리고 랜덤값 활용

wy-family 2025. 3. 10. 22:14

 

배운 내용 정리:

이번 학습에서는 자바의 반복문과 제어문을 깊이 있게 다루었다. 기본적인 for문, while문, do-while문을 활용한 다양한 예제들을 실습했으며, 반복문을 제어하는 breakcontinue의 동작 방식도 함께 살펴보았다. 또한, switch문과 break의 관계 및 레이블을 활용한 break 문법까지 익혔다. 마지막으로 Math.random()과 Random 클래스를 활용한 난수 생성 방법도 배웠다.


📌 1. 기본 for문과 활용

  • for문을 이용하여 고정된 횟수만큼 반복 수행하는 방법을 익힘.
  • i 값을 활용하여 특정 규칙을 가진 값들을 출력하는 예제를 실습함.
  • 문자열에서 각 문자를 하나씩 가져오는 방법도 학습함.
  • for문 내부에서 변수를 선언하면 반복될 때마다 새롭게 생성된다는 점도 확인함.
  • 짝수만 출력하는 방법100부터 1까지 출력하는 방법도 실습함.

🔹 주요 코드 예제:

java

코드 복사

for(int i = 1; i <= 10; i++) {

    System.out.print(i + " ");

}

 

java

코드 복사

for(int i = 100; i >= 1; i--) {

    System.out.printf("%3d ", i);

    if(i % 10 == 1) System.out.println();

}

 


📌 2. for문 응용 (초기식, 조건식, 증감식 활용)

  • for문의 초기식, 조건식, 증감식을 생략할 수도 있음을 배움.
  • 무한 루프를 만들 때 for(;;) 구문을 활용할 수 있음.
  • 사용자가 입력한 횟수만큼 반복하도록 구현하는 방법을 학습함.

🔹 주요 코드 예제:

java

코드 복사

for(;;) {

    System.out.println("무한루프");

    if(i++ > 10) break;  // 특정 조건에서 탈출

}

 

java

코드 복사

Scanner sc = new Scanner(System.in);

System.out.print("몇 번 반복할 건가요? : ");

for(int j = 1, count = sc.nextInt(); j <= count; j++) {

    System.out.println("동적 반복: " + j);

}

 


📌 3. while문과 do-while문

  • while문을 활용하여 특정 조건이 만족할 때까지 반복하는 방법을 배움.
  • 사용자가 특정한 입력(예: "끝")을 할 때까지 계속 입력을 받는 방법을 실습함.
  • 메뉴 선택 프로그램을 만들면서 while문을 실습함.

🔹 주요 코드 예제:

java

코드 복사

while(true) {

    System.out.println("infinite");

    if(su++ > 100) break;

}

 

java

코드 복사

int choice = 0;

while(choice != 9) {

    System.out.println("==== 점심메뉴 ====");

    System.out.println("1. 마라샹궈");

    System.out.println("2. 돈까스");

    System.out.println("9. 종료");

    choice = sc.nextInt();

}

 


📌 4. switch문과 break

  • switch문이 반복문이 아닌 조건문이라는 점을 확인함.
  • break반복문에서 동작하는 방식과 switch에서 동작하는 방식이 다름을 배움.
  • break를 생략하면 fall-through 현상이 발생함.

🔹 주요 코드 예제:

java

코드 복사

int num = 2;

switch (num) {

    case 1:

        System.out.println("One");

        break;

    case 2:

        System.out.println("Two");

        break;

    case 3:

        System.out.println("Three");

        break;

    default:

        System.out.println("Other");

}

 


📌 5. break와 continue 활용

  • break현재 반복문을 종료하는 역할을 함.
  • continue현재 반복을 건너뛰고 다음 반복을 수행하도록 함.
  • 중첩 반복문에서 break를 특정 반복문에 적용할 수 있도록 label을 활용하는 방법도 학습함.

🔹 주요 코드 예제:

java

코드 복사

for(int i = 0; i < 10; i++) {

    if(i > 5) break;

    System.out.println(i);

}

 

java

코드 복사

a:

for(int i = 2; i < 10; i++) {

    for(int j = 1; j < 10; j++) {

        if(j == 5) break a; // 바깥쪽 반복문까지 종료

        System.out.println(i + " X " + j + " = " + i * j);

    }

}

 


📌 6. 중첩 for문과 문자열 중복 검사

  • 이중 for문을 사용하여 구구단을 출력하는 방법을 배움.
  • 입력한 문자열에서 중복된 문자를 찾아 출력하는 로직을 구현함.

🔹 주요 코드 예제:

java

코드 복사

for(int i = 1; i <= 9; i++) {

    System.out.println("==== " + i + "단 ====");

    for(int j = 1; j <= 9; j++) {

        System.out.println(i + " x " + j + " = " + (i * j));

    }

}

 

java

코드 복사

Scanner sc = new Scanner(System.in);

System.out.println("중복된 문자값이 있는지 확인하고 싶은 문장을 입력하세요.");

String test = sc.nextLine();

String dupl = "";

for(int i = 0; i < test.length(); i++) {

    char target = test.charAt(i);

    for(int j = i + 1; j < test.length(); j++) {

        if(target == test.charAt(j)) {

            if(!dupl.contains(String.valueOf(target))) {

                dupl += target;

            }

        }

    }

}

System.out.printf("총 중복된 문자들 : %s\n", dupl);

 


📌 7. 자바에서 랜덤값 생성

  • Math.random()Random 클래스를 사용하여 난수를 생성하는 방법을 배움.
  • 로또 번호 생성 등 실전 예제를 구현함.

🔹 주요 코드 예제:

java

코드 복사

System.out.println(Math.random()); // 0~1 사이의 난수

System.out.println((int)(Math.random() * 10)); // 0~9 사이의 난수

System.out.println((int)(Math.random() * 45 + 1)); // 1~45 사이의 난수 (로또 번호)

 

Random rnd = new Random();

System.out.println(rnd.nextInt(10) + 1); // 1~10 사이의 난수

 


📌 결론

이번 학습을 통해 자바의 반복문과 제어문을 깊이 이해할 수 있었다.

  • for문과 while문을 이용한 반복 구조
  • break와 continue를 활용한 흐름 제어
  • switch문과 레이블을 활용한 break 적용 방법
  • 난수를 생성하는 다양한 방법

특히, 반복문을 활용하여 동적인 입력을 받아 처리하는 방식과, 중첩 반복문을 이용한 문자열 처리 로직을 배울 수 있었던 점이 유익했다. 🚀