반복문 (Loops) 정리
반복문 개념
반복문은 프로그램 흐름을 제어하는 제어문 중 하나로, 특정 실행 코드를 반복적으로 수행할 때 사용됩니다. 크게 for, while, do-while로 나뉩니다.
1. for문
for문은 반복 횟수를 지정하여 실행하는 구조입니다.
기본 구조
for (초기식; 조건식; 증감식) {
// 반복적으로 실행하고자 하는 코드
}
예제 코드
1. 기본 반복
for (int i = 0; i < 10; i++) {
System.out.println("안녕하세요. " + i);
}
2. 특정 범위의 숫자 출력
// 1~5 숫자 출력
for (int i = 1; i <= 5; i++) {
System.out.print(i + " ");
}
// 5~1 숫자 출력
for (int i = 5; i > 0; i--) {
System.out.print(i + " ");
}
3. 정수 입력받아 1부터 해당 수까지 출력
Scanner sc = new Scanner(System.in);
System.out.println("정수 입력:");
int num = sc.nextInt();
for (int i = 1; i <= num; i++) {
System.out.print(i + " ");
}
4. 누적 금액 계산
Scanner sc = new Scanner(System.in);
System.out.println("아메리카노 몇 잔을 구매하시겠습니까? (가격 1500원): ");
int count = sc.nextInt();
int sum = 0;
for (int i = 1; i <= count; i++) {
sum += 1500;
System.out.println(i + "번째 반복 중... 누적 금액: " + sum);
}
System.out.println("결제하실 금액: " + sum + "원");
5. 홀수 출력
// 1부터 10까지 홀수 출력
for (int i = 1; i <= 10; i++) {
if (i % 2 != 0) {
System.out.print(i + " ");
}
}
6. 1부터 100까지의 합
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("1부터 100까지의 총 합: " + sum);
7. 랜덤값 계산
int n = (int) (Math.random() * 10) + 1;
int sum = 0;
System.out.println("랜덤값: " + n);
for (int i = 1; i <= n; i++) {
sum += i;
}
System.out.println("1부터 " + n + "까지의 합: " + sum);
2. while문
while문은 조건이 참일 때 반복 실행하는 구조입니다.
기본 구조
초기식;
while (조건식) {
// 실행할 코드
증감식 또는 탈출 조건
}
예제 코드
1. 숫자 입력받아 출력 (0 입력 시 종료)
Scanner sc = new Scanner(System.in);
System.out.println("숫자를 입력하세요 (0 입력 시 종료):");
int n = sc.nextInt();
while (n != 0) {
System.out.println(n);
n = sc.nextInt();
}
2. 랜덤값 합계 계산
int n = (int) (Math.random() * 100) + 1;
int i = 1, sum = 0;
while (i <= n) {
sum += i;
i++;
}
System.out.println("1에서부터 " + n + "까지의 총 합: " + sum);
3. 메뉴 기반 시스템
Scanner sc = new Scanner(System.in);
int num;
System.out.println("서비스 번호를 입력하세요.");
System.out.println("1. 추가");
System.out.println("2. 삭제");
System.out.println("9. 종료");
num = sc.nextInt();
while (num != 9) {
switch (num) {
case 1:
System.out.println("추가되었습니다.");
break;
case 2:
System.out.println("삭제되었습니다.");
break;
}
System.out.println("입력: ");
num = sc.nextInt();
}
3. do-while문
do-while문은 조건과 상관없이 처음에는 무조건 한 번 실행되는 반복문입니다.
기본 구조
do {
// 실행할 코드
} while (조건식);
예제 코드
사용자 입력의 누적합
Scanner sc = new Scanner(System.in);
int sum = 0, num;
do {
System.out.println("숫자를 입력하세요 (0 입력 시 종료):");
num = sc.nextInt();
sum += num;
} while (num != 0);
System.out.println("누적합: " + sum);
4. break문
break문은 반복문이나 switch문을 강제로 종료하는 역할을 합니다.
예제 코드
특정 조건에서 반복 종료
int num;
while (true) {
num = (int) (Math.random() * 100) + 1;
System.out.println(num);
if (num % 3 == 0) {
break;
}
}
문자열 입력 반복 (exit 입력 시 종료)
Scanner sc = new Scanner(System.in);
String str;
while (true) {
System.out.println("문자열 입력 (exit 입력 시 종료):");
str = sc.next();
if (str.equals("exit")) {
break;
}
System.out.println("문자열 길이: " + str.length());
}
5. continue문
continue문은 반복문의 현재 수행을 중단하고, 바로 다음 반복으로 넘어갑니다.
예제 코드
1부터 100까지 합계 (6의 배수 제외)
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 6 == 0) {
continue;
}
sum += i;
}
System.out.println("1부터 100까지의 합 (6의 배수 제외): " + sum);
사용한 메소드
- Math.random(): 랜덤값 생성
- 공식: (int) (Math.random() * (최대값 - 최소값 + 1)) + 최소값;
- 문자열 다루기:
- charAt(index): 문자열의 특정 인덱스의 문자 가져오기
- length(): 문자열의 길이 반환