반복문은 영어로 loop라고 부르며, 반복문을 수행하는 것을 '루프가 돈다'라고 표현하기도 합니다.
반복문을 사용하는 이유 : 예를 들어 1에서 100까지 더하기 위한 반복적인 코드를 쉽게 작성하기 위해 사용됩니다.
반복문의 종류로는 while, do-while, for문이 존재합니다.
- while문은 조건이 참이라면 계속해서 while문 안에 있는 실행문을 반복합니다.
- do-while문은 while문과 동일한 방식을 따르지만 다른 점은 조건을 따지기 전 실행문을 1번 먼저 실행합니다.
- while문의 조건이 true라면 무한 루프가 동작합니다.
for문은 반복문 중에서 가장 많이 사용되는 반복문입니다.
for문의 각 요소를 알아두면 쉽게 사용할 수 있을 것이라고 생각합니다.
- 초기화식 : for문이 시작할 때 한 번만 수행하여 해당 변수를 초기화합니다.
- 조건식 : for문이 언제까지 반복할 것인지를 정합니다. (true or false에 해당해야 합니다.)
- true인 경우에는 while에서 처럼 실행문 A를 반복합니다.
- false인 경우 for문을 종료하고 실행문 B를 출력합니다.
- 아래 예시에서는 조건식에 '<='를 사용하긴 했지만 실제로는 '<'를 더 많이 사용합니다.(배열 인덱스와 관련)
- 증감식 : 반복 횟수나 for문에서 사용하는 변수 값을 1만큼 늘리거나 줄입니다.
- for문의 수행 순서 : 1. 초기화식 -> (조건식 -> 실행문 A -> 증감식) -> 조건식[false] -> 실행문 B
- 반복문 과정에서 매번 조건식에서 true & false를 확인하고 true인 경우에는 반복, false인 경우에는 종료.
- 각 요소들은 생략이 가능합니다.
- 반복문은 중첩이 가능합니다. 중첩된 반복문의 경우에는 외부 반복 수행 후 내부 반복 수행 과정으로 진행됩니다.
- 자바에서는 배열을 쉽게 출력하기 위한 향상된 for문을 제공해줍니다.(우측 for문)
- 향상된 for문에는 초기화와 종료 조건 없이 배열을 시작부터 끝까지 실행한 후 종료합니다.
- 향상된 for문은 for문과 다르게 ;(세미콜론)이 아니라 :(콜론)을 사용합니다.
- 데이터 타입은 출력할 형태의 데이터 타입을 작성하면 됩니다. 다차원 배열이라면 배열 형태로의 출력도 가능합니다.
- 해당 내용은 배열을 공부한 다음 사용하는 것을 추천합니다.
public class LoopTest {
public static void main(String[] args) {
//while문
int num = 1;
int sum = 0;
//do-while문
int num2 = 1;
int sum2 = 0;
//for문
int num3 = 1;
int sum3 = 0;
//향상된 for문
String[] hobby = {"soccer", "bowling", "baseball"};
//while문(1 ~ 10까지의 합) / 실행문A와 증감식의 순서를 바꾸면 결과는 달라집니다.
while(num <= 10) {
sum += num; // 실행문A
num++; // 증감식
}
System.out.println(sum); // 55
//do-while문
do {
sum2 += num2; // 실행문
num2++; // 증감식
} while(num2 <= 10);
System.out.println(sum2); // 55
//for문(1 ~ 10까지의 합)
for(num3 = 0; num3 <= 10; num3++) {
sum3 += num3;
}
System.out.println(sum3); // 55
//향상된 for문
for(String hb : hobby) {
System.out.println(hb);
}
//출력 결과
//soccer
//bowling
//baseball
}
}
'백엔드 > JAVA' 카테고리의 다른 글
제네릭(Generic) 문법과 Optional 클래스 (0) | 2021.08.22 |
---|---|
배열 (0) | 2021.08.21 |
[JAVA] 조건문(if문과 switch-case문) (0) | 2021.03.09 |
[JAVA] 연산자 (0) | 2021.03.07 |
[JAVA] 자료형, 데이터 타입 (0) | 2021.03.07 |
최근댓글