Dev/Java
[Java] 반복문
syuare
2025. 4. 30. 23:40
반복문 (for, while, do-while)
컴퓨터에게 일정한 형태의 작업을 반복적으로 수행하도록 할 때 사용한다.
for문
- 시작 조건이 종결조건을 불만족할 때까지 반복문 내 작성된 명령을 수행해라
- 단, 1회 수행하고 나면 [조건변화수식]을 반영한 후 재수행해라
for (시작조건; 종결조건; 조건변화수식) {
...
}
// 예시
for(int i =1; i<= 10; i++) {
// 안녕하세요 10번 출력
System.out.println("안녕하세요.");
}
break 활용
- break: 해당 제어문에서 빠져 나오라는 명령어 (탈출 버튼)
- for 문 외에도 다른 반복문, 제어문에서 사용할 수 있다.
더보기

int customers = 5;
for(int i =1; i<= customers; i++) {
if(i==4){
break;
}
System.out.println(i + "번째 손님, 어서오세요");
}

continue 활용
- continue: 해당 제어문의 조건에 만족하면 기존 명령 코드를 무시하라(스킵 버튼)
- for 문 외에도 다른 반복문, 제어문에서 사용할 수 있다.
더보기

int customers = 5;
for(int i =1; i<= customers; i++) {
if(i==4){
break;
}
if(i==2){
continue;
}
System.out.println(i + "번째 손님, 어서오세요");
}

향상된 for문
배열 or 여러 원소를 포함한 자료형일 경우 기존의 for문으로 사용할 수 있지만,
향상된 for문을 사용할 경우 코드가 간결해지고 가독성을 높일 수 있다.
- 향상된 for문은 배열, ArrayList 원소 출력 시 자주 사용한다.\
- 단점: index를 사용하지 못한다.
- 물론 별도의 변수를 선언한 후 향상된 for문에 선언했던 변수를 증/감 하도록 하면 index 처럼 사용할 수 있다.
더보기

int[] arr = {100,200,300,400,500};
// 배열 탐색: 일반 for문
for (int i = 0; i<arr.length; i++){
System.out.println("인덱스: " + i + ", 값: " + arr[i]);
}
// 배열 탐색: 향상된 for문
for (int a : arr) {
System.out.println("값: " + a);
}

while문
조건이 종결조건만 가지고 있으며, 종결조건이 true일 때까지 반복문을 실행한다.
- 종결조건을 정확히 제시하지 않으면 해당 반복문은 무한루프에 빠지니 주의할 것
- 예) 영원히 종결조건이 false 일 경우 무한루프에 빠지니,
꼭 true가 될 수 있는 조건을 만들어야 반복문을 빠져나올 수 있다.
- 예) 영원히 종결조건이 false 일 경우 무한루프에 빠지니,
while (종결조건) {
반복할 명령문;
}
더보기

// while문
int i = 1;
while (i <= 10){
System.out.println(i + "은(는) 10보다 작습니다.");
i++;
}

do-while문
while과 유사하지만 차이점은
일단 코드를 1회는 무조건 실행한 뒤에 종결조건을 확인하는 반복문이다. (종결 조건을 만족하면 반복문 종료)
do {
반복할 명령문..
} while (종결 조건)
더보기

int i = 1;
do{
System.out.println("이번 숫자는 " + i);
i++;
} while (i<=10);

Appendix. 실습
더보기


2~9 사이의 값을 입력받아 해당 숫자의 구구단을 출력하기.
import java.util.Scanner;
public class Gugudan {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("2~9까지의 구구단을 출력하는 프로그램입니다.");
System.out.print("출력할 구구단의 단수를 입력하세요: ");
int i = sc.nextInt();
if(i>1){
if(i<10){
System.out.println("-------" + i + "-------");
for (int a=1; a<10; a++){
System.out.println(i + "x" + a + "=" + (i*a));
}
} else {
System.out.println("잘못 입력하셨습니다. 2~9 사이의 숫자를 입력해야 됩니다.");
}
} else {
System.out.println("잘못 입력하셨습니다. 2~9 사이의 숫자를 입력해야 됩니다.");
}
}
}

* 정답
- if 조건식에 논리 연산자를 활용하면 코드를 확실히 줄일 수 있을 듯
import java.util.Scanner;
public class Gugudan {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("2~9까지의 구구단을 출력하는 프로그램입니다.");
System.out.print("출력할 구구단의 단수를 입력하세요: ");
int i = sc.nextInt();
// if(i>1){
// if(i<10){
// System.out.println("-------" + i + "-------");
// for (int a=1; a<10; a++){
// System.out.println(i + "x" + a + "=" + (i*a));
// }
// } else {
// System.out.println("잘못 입력하셨습니다. 2~9 사이의 숫자를 입력해야 됩니다.");
// }
// } else {
// System.out.println("잘못 입력하셨습니다. 2~9 사이의 숫자를 입력해야 됩니다.");
// }
if (i<2 || i>9) {
System.out.println("잘못 입력하셨습니다. 2~9 사이의 숫자를 입력해야 됩니다.");
} else {
System.out.println("-------" + i + " 단-------");
for (int a=1; a<10; a++){
System.out.println(i + "x" + a + "=" + (i*a));
}
}
}
}
구구단 2단~9단 전부 출력
public class GugudanAll {
public static void main(String[] args) {
System.out.println("2~9까지의 구구단을 출력하는 프로그램입니다.");
for(int i=2; i<10; i++){
System.out.println("-------" + i + " 단-------");
for (int a=1; a<10; a++){
System.out.println(i + "x" + a + "=" + (i*a));
}
}
}
}
