본문 바로가기

language/java

10. [java] 반복문 for,while, do-while문

728x90
반응형

반복문이란 어떤 작업을 반복해서 수행하려고 할 때 그 코드를 반복해서 적어주는 것이 아닌,

몇회 반복하여 실행해라 라는 식으로 코드를 짤 수 있게 해주는 언어들이다.

자바에선 for과 while, do while문들을 사용한다.

 

for문

 

for문같은 경우에는 원하는 횟수만큼 작업을 반복하기 쉽게 해주는 언어이다.

for같은 경우 기초 모양은 외워주어야 하며 

초기화식, 조건식, 증감식이 사용된다.

설명보단 코드와 실행결과를 보는것이 이해가 더 빠를것이므로 예제로 보여주겠다.

 

package chapter4;

public class forExam {
	public static void main(String[] args) {
		int sum1 = 0 ,sum2 = 0;
		for(int i = 0;i<=3;i++) {
			sum1 += i;
		}
		sum2 += 0;
		sum2 += 1;
		sum2 += 2;
		sum2 += 3;
		
		System.out.println(sum1);
		System.out.println(sum2);
	}
}

위의 예제이다. 이 코드를 실행해보면 sum1의 결과값과 sum2의 결과값이 같은걸 알 수 있다.

즉 아래의 sum2를 0,1,2,3을 더해준것이랑 위의 for문에서 사용해준 방법과 같은것이란 걸 알 수 있다.

for문은 for(초기화식 ; 조건식 ; 증감식) 이런 모양으로 사용된다.

초기화 식은 말 그대로 변수를 초기화(initialize) 해주고

조건식은 조건이 만족할때 for문을 실행하고 만족하지 않게 될 때는 for문을 부셔준다.

증감식은 계산식을 넣어서 for문안에서 한번 반복될때마다 변수가 계산식대로 계산된다는 것이다.

 

즉 위의 for문은 i는 0부터 시작해서 한번 반복될때마다 1씩 증가하고, i가 3이하일때만 반복하겠다.

라는것을 말해준 것이다.

위에서는 겨우 반복을 4번만 해줘서 for문이 필요한지 잘 모를수도 있지만, 만약 0부터 100까지 합을 구하라 한다면?

위의 for문에서는 겨우 조건식에 적혀있는 3만 100으로 바꿔주면 끝이지만 아래는 3~100까지 한줄한줄 다시 적어줘야 한다.

for문이 어떤 순서로 동작하는 알면 조금더 도움이 된다.

위와 같은 순서대로 for문이 실행된다.

1. 초기화문을 먼저 실행하고

2. 조건문을 확인하고 true면 3번으로가고, false면 반복을 멈춘다.

3. 실행문들을 실행하고 4로간다.

4. 계산식을 실행하고 다시 2번으로 간다.

 

for문은 위와 같은 순서로 동작한다. 반복문들은 코딩에서 계속해서 자주 쓰이게 될 언어들이며,

개념 설명보다는 자주 사용해보면서 익히는게 중요하다고 생각한다. 실제 과제들을 풀면서 이해를 돕도록 하자.

 

while문

 

while문도 for문과 마찬가지로 반복문의 역할을 수행한다.

for을 while로, while을 for로 바꿔주어도 같은 역할을 수행하게 코드를 짤 수 있다.

하지만 사용에 약간의 차이가 있다보니, 상황에 따라 어떤것을 사용하는게 더 편할수도 있고,

심지어 사용자에 따라서 더 편한것이 다를 수도 있으니 for문과 while문 둘다 익숙해지는 것이 좋다.

while문은 조건식 하나만 요구한다. 조건식이 true이면 반복문을 수행하고, false면 반복문을 종료한다.

이것도 예시로 보겠다.

int i = 0, sum1=0, sum2=0;
while(i<=10){
	i++;
	sum1 += i;
}
sum2 += 0;
sum2 += 1;
sum2 += 2;
sum2 += 3;
sum2 += 4;
.....

아까 위의 for문과 동일한 코드이다. 0부터 10까지 다 더해주는 것인데, while에는 증감식이 없으니 직접 i값을 증가시켜주고 조건문이 false가 되기 전까지 계속해서 실행해주는 것이다.

그리고 필자는 알고리즘 코딩같은것을 하다보면 무한루프를 자주 만든다.

무한루프는 말 그대로 계속해서 반복이 되게 하는것인데, 이때는 루프를 조건식으로 멈춰주는것이 아니라 break;문을

이욯해서 루프를 멈춰준다. 이에 대해선 다음시간에 알아보도록 하고,

무한 루프는 이런식으로 만들면 된다.

while(true){
	실행문;
}

이럴 경우 조건식이 항상 true이니 계속해서 실행문을 반복 실행하는 것이다. 

 

do - while문

 

do while문 같은 경우에는 while과 상당히 비슷하다.

하지만 while은 조건식을 먼저 검사하지만, do while은 실행문을 실행하고 그 다음에 조건식을 확인한다는 차이점이 있다. 기본적인 모양은 아래와 같다.

do{
	실행문;
}while (조건식);

실행문을 싱행하고, 조건식을 봤을때 true면 다시 실행문을 실행하고, false면 반복문을 그만둔다.

반응형