JAVA

반복문

seungmin576 2024. 12. 9. 18:00

반복적인 행동을 할 때 우리가 하나하나 코드로 치면 끝도 없는데 이를 편하게 해주는 것이 반복문이다.

예를 들면 '1부터 10까지 더해주세요' 를 코드로 치면

int num;

num += 1;
num += 2;
......
num += 10;

이런식으로 하나하나 쳐야하지만 반복문이라는 걸 사용하면 편리하게 해준다는 거다.

 

 

 

 

while문

조건식이 참인 동안 수행문을 반복해서 수행한다.

while(조건식){
	수행문1;
}
수행문2;

어떠한 조건을 만족하는 동안 중괄호 안의 수행문을 반복해서 처리한다.

 

 

  • 1부터 10까지 더하는 예제
public class WhileExample {
    public static void main(String[] args) {
        int num = 1;
        int sum = 0;

        while(num <= 10) {
            sum += num;
            num++;
        }
        System.out.println("1부터 10까지 합은 " + sum + "입니다.");
    }
}

위 예제는 num 변수와 sum 변수를 선언하면서 동시에 초깃값을 저장했다.

변수는 항상 초기화해야 하는 것은 아닌데, 이 예제에서는 반드시 초기화해야한다.

초기화하지 않으면 오류가 나는데 그 이유는

while문 내부 sum에 num 값을 더해주는데 num값이 먼저 정해져 있지 않다면 sum에 무엇을 더해야 할지 알 수 없다.

또 sum 값도 정해져 있지 않다면 어떤 값에 num 값을 더해야 할지 알 수 없다.

변수를 사용하여 연산을 하거나 그 값을 가져다 사용하려면 변수는 반드시 어떤 값을 가지고 있어야 한다.

 

 

  • while문이 무한히 반복되는 경우

어떤 일들은 수행할 때 멈추면 안 되고 무한 반복해야 하는 경우도 있다.

예로 인터넷 쇼핑몰이 있는데 인터넷 쇼핑몰이 24시간 서비스하기 위해서는 쇼핑몰의 데이터를 저장하고 있는 웹 서버가 멈추지 않고 끊임없이 돌아가야 한다.

이처럼 끊임없이 돌아가는 서비스를 데몬(daemon)이라고 부른다.

데몬서비스를 구현할 때 무한 반복을 사용해야 한다

 

while문의 구조를 볼 때 조건식이 참이면 반복한다.

따라서 while문을 다음과 같이 사용하면 조건이 항상 '참' 이 되어 무한 반복한다.

while(true){
	....
}

 

 

 

 

 

do-while문

while 문은 조건을 먼저 검사하기 때문에 조건식에 맞지 않으면 반복 수행이 한 번도 일어나지 않는다.

하지만 do-while문은 중괄호 안의 문장을 무조건 한 번 수행한 후에 조건식을 검사한다.

즉 조건이 만족하는지 여부를 마지막에 검사하는 것이다.

따라서 중괄호 안의 문장을 반드시 한 번 이상 수행해야 할 때 do-while문을 사용한다.

 

  • do-while문의 구조
do{
	수행문1;
} while(조건식);
  수행문2;

 

  • 1부터 10까지 더하는 예제
public class DoWhileExample {
    public static void main(String[] args) {
        int num = 1;
        int sum = 0;

        do {
            sum += num;
            num++;
        } while(num <= 10);
            System.out.println("1부터 10의 합은 " + sum + "입니다.");
    }
}

 

 

 

 

for문

반복문 중 가장 많이 사용된다.

반복문을 구현하는 데 필요한 여러 요소(변수의 초기화식, 조건식, 증감식)를 함께 작성한다.

 

  • for문의 기본 구조
for(초기화식; 조건식; 증감식){
	수행문;
}

초기화식은 for문이 시작할 때 딱 한 번만 수행하며 사용할 변수를 초기화한다.

조건식에서 언제까지 반복 수행할 것인지 구현한다.

증감식에서 반복 횟수나 for문에서 사용하는 변수 값을 1만큼 늘리거나 줄인다.

 

  • 1부터 10까지 더하는 for문
public class ForExample {
    public static void main(String[] args) {
        int i;
        int sum;

        for(i = 1, sum = 0; i <= 10; i++) {
            sum += i;
        }

        System.out.println("1부터 10까지의 합은 " + sum + "입니다.");
    }
}

초기화식이나 증감식에서 콤마(,)를 사용하여 여러 문장을 사용할 수 있다.

위 예제에서는 초기화식에 콤마를 사용하여 두가지 변수를 초기화를 했다.

 

 

 

  • for문 요소 생략하기

for문을 구성하는 요소는 코드가 중복되거나 논리 흐름상 사용할 필요가 없을 때 생략할 수 있다.

 

초기화식 생략

이미 이전에 다른 곳에서 변수가 초기화되어 중복으로 초기화할 필요가 없을 때 초기화 부분을 생략 할 수 있다.

int i = 0;
for(; i < 5; i++){
	....
}

 

조건식 생략

어떤 연산 결과 값이 나왔을 때 바로 for문의 수행을 멈추려면 조건식을 생략하고 for문 안에 if문을 사용하면 된다.

for(i = 0; ; i++){
	sum += 1;
    if(sum > 200) break;
}

 

증감식 생략

증감식의 연산이 복잡하거나 다른 변수의 연산 결과 값에 좌우된다면 증감식을 생략하고 for문 안에 쓸 수 있다.

for(i = 0; i < 5; ){
	i = (++i) % 10;
}

 

요소 모두 생략

모든 요소를 생략하고 무한 반복하는 경우에 사용한다.

for( ; ; ){
	.....
}

 

 

 

 

각 반복문을 언제, 어떤 경우에 사용할까?

for

반복 횟수가 정해진 경우

 

do-while

반드시 한 번 이상 수행해야 하는 경우

 

while

이 두경우 외에 조건의 참 거짓에 따라 반복문이 수행하는 경우

 

'JAVA' 카테고리의 다른 글

객체 지향 프로그래밍, 클래스  (1) 2024.12.11
continue문, break문  (0) 2024.12.10
조건문  (2) 2024.12.09
비트 연산자, 연산자 우선순위  (0) 2024.12.09
연산자  (0) 2024.12.06