배운 내용 정리:
이번 학습에서는 자바의 반복문과 제어문을 깊이 있게 다루었다. 기본적인 for문, while문, do-while문을 활용한 다양한 예제들을 실습했으며, 반복문을 제어하는 break와 continue의 동작 방식도 함께 살펴보았다. 또한, 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 적용 방법
- 난수를 생성하는 다양한 방법
특히, 반복문을 활용하여 동적인 입력을 받아 처리하는 방식과, 중첩 반복문을 이용한 문자열 처리 로직을 배울 수 있었던 점이 유익했다. 🚀
'에듀테크 부트캠프' 카테고리의 다른 글
중첩 반복문 (for - for)에서 생긴 궁금증 - 최적화, 효율, 실무 활용도의 관점 (0) | 2025.03.10 |
---|---|
switch는 조건문인데 반복문이기도 한건가? (0) | 2025.03.10 |
배열의 인덱스는 왜 0부터 시작할까? + 참조값의 비밀 (0) | 2025.03.10 |
0은 양수일까? 컴퓨터가 0을 처리하는 방식과 에듀테크에서의 의미 (1) | 2025.03.08 |
Java 제어문 완전 정복! 조건문과 반복문을 활용한 실전 예제 (0) | 2025.03.07 |