반복문은 특정 코드들을 반복적으로 실행하고자 할 때 사용되며, 반복문의 종류는 for문, while문, do-while문이 있다. for문은 반복횟수를 알고 있을 때 주로 사용되며, while문은 조건에 따라 반복할 때 주로 사용된다.
for문은 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행한다.
for((초기화); (조건식); (증감식)) {
//조건이 참일 경우 for문 내부 실행
}
- 초기화는 for문이 시작할 때 최초 한 번만 수행하며, 사용할 변수의 초깃값을 정한다.
- 조건식은 계속 반복할지 여부를 결정하는 조건이다. 조건식 안의 값이 true라면 실행문을 실행시키고, false 더 이상 블록을 실행하지 않고 끝낸다.
- 증감식은 반복 횟수를 결정하는 규칙이다. 변수에 값을 더하거나 곱하는 등 수행 방식을 지정한다.
++은 반복문에서 자주 사용되는 증감연산자로,i++일 경우i의 값을 1 증가시킨다.정리하면 for문은 조건식의 조건을 검사한 후 true일 경우 for문 내부의 실행문을 실행하고 다시 돌아와서 조건을 검사하며, 조건이 false가 될 때까지 반복한다.
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i < 10; i++;) { i의 초기값은 0, i가 10보다 작을 동안, i가 1씩 증가
sum += i; // sum = sum + i를 단축
}
System.out.println(sum); // i가 조건식이 false일 때까지의 합을 출력
}
}
배열과 컬렉션 객체를 좀 더 쉽게 처리하기 위한 for문 이다. 반복실행을 하기 위한 카운터 변수와 증감식을 사용하지 않고, 배열 및 컬렉션 항목의 개수만큼 반복한다.
String[] alphabet = {"Aa", "Bb", "Cc"};
for (String alphabetSet : alphabet) {
System.out.println(alphabetSet);
}
/*
Aa
Bb
Cc
*/
for문의 괄호()안에는
저장할 변수, 콜론(:), 사용할 배열을 작성한다. for문을 처음 실행할 때, 배열에서 가져올 첫번째 값이 존재하는지 확인 하고, 값이 존재하면 해당값을 저장할 변수에 저장한다. 그 다음 실행문을 실행하며 배열에 가져올 다음 항목이 없다면 자동으로 for문이 종료된다.
for문이 정해진 횟수만큼 반복한다면, while문은 조건식이 true일 경우에 반복된다.
for문과 while문은 초기화, 증감식의 위치만 다를 뿐 상호 대체가 가능하다.
(초기화)
while(조건식) {
실행문; // 조건식이 참인 동안
증감식;
}
초기화와 증감식이 필요 없다면 생략이 가능하다.
boolean run = true;
int num = 1;
while(run){ // 조건문 무한루프
num++; //실행문
System.out.println(num); //실행문
if(num == 22) { // 무한루프 탈출
run = false;
}
}
while의 조건식을 true로 주고 원하는 값이 나올 때 if문으로 조건식의 boolean값을 false로 바꿔 무한루프를 탈출하는 방식이다.
do-while문은 조건식에 의해 반복 실행한다는 점에서 while문과 동일하다. do-while문은 실행문을 우선 실행시키고 실행 결과에 따라 반복 실행을 계속 할지 결정하는 경우도 있다.
do {
실행문 //처음 한 번은 무조건 실행
} while (조건식);
do-while문이 처음 실행될 때 실행문을 먼저 실행한후 조건식을 평가한다. 그리고 그 결과가 true일 때 실행문 → 조건식으로 반복 실행 하고, false이면 do-while문을 종료한다.
구구단 같은 반복문 안에 반복문이 필요한 경우 사용되는데, for문 안의 for문에는 같은 기준의 값을 사용할 수 없다.
for문 안에 for문을 넣어 1*1 부터 9*9 까지 구구단을 만드는 과정이다.
for(int i = 1; i < 10; i++) {
for(int j = 1; j < 10; j++) {
System.out.println(i + "*" + j + "=" + (i*j));
}
}
//1*1부터 9*9까지 출력
이용자에게 삼각형 높이의 입력을 받아 입력에 맞게 삼각형을 만드는 과정이다.
Scanner sc = new Scanner(System.in); //사용자 입력을 받기위한 스캐너 선언
System.out.println("삼각형의 높이를 입력하세요.");
int height = sc.nextInt(); // 사용자 입력값을 높이에 할당
for(int i = 1; i <= height; i++) {
for(int j = 1; j <= height - i; j++) {
System.out.print(" ");
}
for(int j = 1; j <= i; j++) {
System.out.print("*");
}
for(int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println(""); // 줄바꿈
}
/* 5를 입력시 출력
*
***
*****
*******
*********
*/