포스트

[JAVA] 조건문과 반복문

조건문과 반복문 설명

조건문

  • 조건식의 연산결과에 따라서 실행할 문장이 달라질 수 있음
  • if문과 switch문이 있으며 주로 if문이 사용된다.

반복문

  • 어떠한 작업을 반복적으로 수행하여야 할 때 사용된다.
  • 반복문의 종류는 for문, while문, do-while문이 있다.

조건문의 이해

if문

  • 조건식과 괄호로 이루어져 있다.
  • 만약 ~라면,으로 참이면 괄호 안의 문장들이 수행한다.
1
2
3
if (조건식) {
    // 조건식이 참일 경우 수행
}
  • 조건식은 괄호(블록) 내에서는 탭(TAB)으로 들여 쓰기를 하고 코드를 작성하면 좋다.

if-else문

  • if문과 비슷하며 if 조건식이 거짓일 경우 else 괄호 내에 있는 문장들이 수행된다.
1
2
3
4
5
if (조건식) {
    // 조건식이 참일 경우 수행
} else {
    // 조건식이 거짓일 경우 수행
}

if-else if문

  • 처리해야 하는 경우의 수가 셋 이상일 경우 else if문으로 조건식을 추가하여 수행할 수 있다.
1
2
3
4
5
6
7
if ( 번째 조건식){
    // 조건식이 참일 경우 수행
} else if ( 번째 조건식){
    // 두 번째 조건식이 참일 경우 수행
} else{
    // 위 조건식이 모두 참이 아닐 경우 수행
}
  • if문은 첫 조건식부터 순서대로 연산하여 수행한다.

중첩 if문

  • if문 블록 내에서 if문을 다시 사용할 수 있으며 중첩의 횟수는 제한이 없다. 이를 중첩 if문이라고 부른다.
1
2
3
4
5
6
if (첫번째 조건식){
        // 첫번재 조건식이 참일 경우 수행
    if (두번째 조건식){
        // 첫번째 조건식이 참이면서 두번째 조건식이 참일 경우 수행
    }
}

switch문

  • 조건식의 경우의 수가 많아질수록 else-if문을 계속 추가해야 하는데 그럴수록 조건식이 많아져 복잡해지고 처리시간도 오래 걸린다.
  • 이럴 경우 switch문을 사용하면 표현도 간결하고 하나의 조건식으로 많은 경우의 수를 처리할 수 있다.
1
2
3
4
5
6
7
8
switch (조건식) {
    case 값1:
        // 값1이 조건식과 같을 경우 수행
    case 값2:
        //값2가 조건식과 같을 경우 수행
    default:
        // 위 case 조건식과 모두 같지 않을 경우 수행
}
  • 조건식과 값이 같을 경우 해당 case 블록 내에 있는 값이 수행되며 default는 if-else문의 else문과 같다고 생각하면 좋다.

switch문의 제약조건

  • switch문의 조건식은 결과값이 반드시 정수이어야 한다.
  • 값과 일치하는 case문으로 이동하기 때문에 case문 값도 역시 정수 이어야 한다.
  • 또한 중복되지 않아야 한다.

switch문의 중첩

  • switch문도 역시 중첩 사용이 가능하다.

반복문의 이해

for문

  • for문은 반복 횟수를 알고 있을 때 용이하다.
1
2
3
for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}
  • 위의 반복문 경우
  • int i=1 은 1부터 시작하며 i<=5 5보다 작거나 같을 때까지(5까지) 블록 내의 문장을 수행하며 i++ 매 반복문이 끝날 때마다 i의 값을 1을 증가시킨다.라는 의미이다.
  • 간단하게 1부터 5까지 총 5번 수행되며 코드를 실행할 경우 1부터 5까지 출력이 된다.
1
2
3
for (초기화; 조건식; 증감식) {
    //조건식이 참일 경우 수행
}

초기화

  • 반복문에 사용될 변수를 초기화하는 부분이며 처음에 한 번만 수행된다.

조건식

  • 조건식이 값이 참(true) 일 경우 반복문 블록을 수행하며, 거짓(false) 일 경우 반복을 중단하고 for문을 벗어난다.
  • 간단하게 조건식이 ‘참일 경우에만 반복문을 실행한다. ’라고 생각하면 된다.

증감식

  • 반복문을 제어하는 변수의 값을 증가나 감소시키는 식
  • 매 수행할 때마다 증가나 감소가 되며 조건식이 거짓이 되어 for문을 벗어나게 된다.
  • 주로 연산자 ‘++’이 사용되지만 그 외 다양한 연산자로도 활용할 수 있다.

중첩 for문

  • for문 내에서 ‘중첩 if문’처럼 for문을 사용할 수 있다.

향상된 for문

  • for문을 배열과 컬렉션에 저장된 요소에 접근할 때 보다 편리한 방법으로 처리할 수 있다.
1
2
3
for (타입 변수명 : 배열 또는 컬렉션){
    // 반복할 문장
}
1
2
3
4
5
6
7
8
9
10
11
int [] arr = {1,2,3,4,5};

// (1)
for(int i=0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

// (2)
for(int tmp : arr) {
    System.out.println(tmp);
}
  • 1번 반복문을 2번 반복문처럼 사용이 가능하다.

while문

  • if문처럼 조건식과 블록만으로 이루어져 있다.
  • if문과 달리 while문의 조건식이 거짓이 될 때까지 블록(반복할 문장) 내에 있는 문장을 반복한다.
1
2
3
while (조건식) {
	// 조건식의 연산결과가 참일 경우 동안만 수행
}
  • 한 번씩 조건식이 참일 경우까지인지 거짓일 경우까지인지 헷갈린다.
  • ‘~할 때까지’라고 생각하면 기억하기 쉽다.

do-while문

  • while문의 변형으로 구조는 while문과 같지만 조건식과 블록의 순서가 바뀐 게 do-while문이다.
  • while문과 다르게 블록을 먼저 수행하고 조건식을 평가하는 게 do-while문의 특징이다.
1
2
3
do {
	//조건식의 연산결과가 참일 경우 수행
} while (조건식);
  • 자주 사용되진 않지만, 반복적으로 사용자의 입력을 받아서 처리할 경우 유용하다.

break문과 continue문

break문

  • 자신이 포함된 가장 가까운 반복문을 벗어나야 할 때 사용한다.
  • 특정 조건이 만족될 때 사용한다.

continue문

  • 반복문 내에서만 사용될 수 있으며, 반복문이 수행되는 중 반복문의 끝으로 이동하여 다음 반복문으로 넘어갈 때 사용한다.
  • break문은 반복문을 벗어나지만, continue는 해당 반복문을 넘긴다는 특징이 있다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.