티스토리 뷰

[JAVA로 배우는 자료구조] (2) 반복문이란



안녕하세요. 초보개발자 갓준입니다.  저번 포스팅에서는 알고리즘이란 무엇인가 대해서 알아보았고, 이번 포스팅에서는 반복, 즉 반복문에 대해서 알아보려고 합니다. 먼저 반복문이란 무엇일까요? 말 그대로 반복하는 문법입니다. 말로 설명하면 잘 모르겠으니 코드에서 보겠습니다. 


첫 번째 코드로 반복문을 적용하지 않고 숫자 1부터 10까지를 출력해보겠습니다.


public class Test03
{
	public static void main(String[] args)
	{
		System.out.println("1부터 ~ 10까지의 출력");
		System.out.println(1);
		System.out.println(2);
		System.out.println(3);
		System.out.println(4);
		System.out.println(5);
		System.out.println(6);
		System.out.println(7);
		System.out.println(8);
		System.out.println(9);
		System.out.println(10);
	}
}

보시면 아시겠지만 1부터 10까지 하나하나 찍어주고 있습니다. 굉장히 불편하고 비효율적같이 보이죠? 이런 것을 짧고 간결하게 효율적으로 해주는 것이 바로 반복문입니다. 반복문을 코드에서 알아보기 전 먼저 개요에 대해 알아보겠습니다. 반복문이란 주어진 조건이 true 즉 참일 경우 일정한 문장들을 반복해서 수행하다가 조건이 만족하지 않을 시 반복을 중지하는 문장입니다. 이런 반복문에는 크게 while, do while, for문 등이 있습니다. 

이제 코드에서 반복문의 사용법을 알아보겠습니다.
가장 먼저 설명해 드릴 반복문은 while문입니다.

※ while문의 사용법
while(조건){
명령문1;
명령문2;
명령문3;
}

while문은 이런식으로 이루어집니다. 아까 짠 간결한 코드를 while 반복문으로 짜보겠습니다.
public class Test03
{
	public static void main(String[] args)
	{
		int i=0;

		System.out.println("1부터 ~ 10까지의 출력");
		while(i<10)
		{
			i++;
			System.out.println(i);
		}
	}
}


이런식으로 반복문을 구성할 수 있습니다. 처음에 i의 기본값을 0을 주고, while문의 조건식에 i가 10보다 작을 경우 안에있는 명령문들을 반복해라..! 이런의미 입니다. 이런 반복문에 의해서 i가 1증가하게 되고, i를 출력시켜주게 됩니다. 결국 i는 커지다가 10일 경우 반복문이 종료되는 프로그램입니다. 굉장히 쉽죠? 이런게 반복문입니다. 하나하나 노가다로 힘들게 짜는 코드를 효율적인 한 문장으로 구현해 낼 수 있는 것이 반복문입니다.


다음은 do~while문을 설명해 드리겠습니다. do~while이 무엇일까요? 간단하게 생각하면 됩니다. 

do -> 한번해봐~~~!!!

while -> 그리고 나서 조건에 맞게 반복해!!!


입니다. 음... 못알아들으시겠죠? 그럼 코드 레벨에서 설명해드리겠습니다. 먼저 do ~ while문은 사람들이 많이 안쓰인다고 하는데 저는 간혹 쓰는 반복문입니다. 어쩔때 쓰냐구요...? 이럴 때 씁니다. 사용자에게 특정범위값을 입력받고 싶을때 아닐경우, 맞는 값을 받을 때 까지 반복해라 하는 경우 그런 경우에서 많이 쓰입니다. 먼저 do ~ while문의 사용법은 이렇게 되어있습니다.


※ do~while문의 사용법

do{

명령문1

명령문2

명령문3

}while(조건);


이런식으로 되어있습니다. while과 다른점은 조건 뒤에 세미콜론이 들어간다는 점입니다. 이제 코드레벨에서 한번 사용해볼까요?

문제는 이렇습니다. 1~10사이의 정수를 입력받아라! 이걸 코드레벨에서 구현해 보겠습니다.

import java.util.Scanner;

public class Test04
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);//스캐너 인스턴스 생성
		int i=0;							//초기값 지정
		do{
			System.out.print("1부터 10사이의 정수를 입력해주세요 : ");
			i = sc.nextInt();
		}while(i<1||i>10);
	}
}

이런식으로 코드를 구현할 수 있습니다. 이게 어떤 식으로 돌아가는 것인가? 하면

1. 자바는 do를 만납니다.   -------> 2. 자바는 안에 있는 명령문을 실행합니다.  3. 자바는 while의 조건식을 만납니다. 참 거짓을 판별합니다. ---->

4. 참일경우 반복합니다... 거짓일 경우 반복문을 중지합니다.

이런식으로 수행됩니다. 이 반복문을 왜 특정범위 값을 입력받을 때 쓰냐구요? 만약 기본 while로 구현한다면 한번 입력을 받기도 전에 조건을 판별하게 됩니다. 하지만 do ~ while을 썻을 때 야 일단 한번 입력해봐~! 이런 의미를 지니고 있기 때문에 이 반복문이 적합한 것입니다.


마지막으로 for문에 대해서 알아보겠습니다. for문은 제가 고등학교때부터 선생님 또는 대학교의 교수님 학원의 강사님이 말씀하시기를 실무에서 제일 많이 쓰이는 반복문이다~!!! 그러니 잘배워야 한다. 하지만 어렵다. 이러셨던 반복문입니다. 하지만 제가 생각했을 때의 for반복문은 반복문중에서 제일 간결하고 좋다고 생각합니다. for문을 개요 설명대신 바로 코드레벨에서 설명해드리겠습니다.


※ for문 사용법

for(초기화; 조건; 업데이트 부분)

{

명령문1;

명령문2;

명령문3;

}


이런식으로 이루어져있는 것이 for문입니다. for문이 돌아가는 순서를 보게되면 이렇습니다.

1. 초기화 -> 2. 명령문 -> 3. 업데이트부분 -> 4. 조건부분 ->5.참이면 반복 거짓이면 중지...


이런식으로 구성되어있습니다. 이것도 아까처럼 1부터 10까지를 찍어주는 반복문예제로 설명해드리겠습니다.

public class Test05
{
	public static void main(String[] args)
	{
		for(int i=1;i<=10;i++)
		{
			System.out.println(i);
		}
	}
}

 

이코드인데요. for문 안만 좀 복잡할뿐 어찌보면 제일 간결해보이기도 합니다. 코드 설명을 드리자면 순서대로

1. i : 나는 1부터 시작한닷!!!


2. 명령문을 수행할래!!!


3. i : 나는 이제 하나 증가한닷!!! 2야!!!


4. i : 조건을 만났네 10보다 작거나 같냐고? 응 작아 나 반복할래!!!


5. 명령문...

.

.

.

i : 나는 이제 하나 증가한닷!!! 10이야!!!

조건 : 너는 이제 10이 되었다 그만해라!!!


이런식으로 이루어지는것이 반복문입니다. 되게 오글거리긴 하지만 이해해주세요^^... 


암튼 for문까지 이로소 반복문에 대한 개요와 사용법에 대해서 알아보았습니다. 설명이 잘된지는 모르겠지만 저와 같은 초보개발자분들이 도움이 되셨으면 좋겠습니다~~!!! 반복문은 많은 사람들이 그러죠... 반복문은 반복해서 보고 반복해서 공부해야지 잘쓸수 있다고 코드를 보기보다는 많이 짜보시면 여러분도 다 반복문 마스터가 되실 수 있을 것이라 생각됩니다~~!!! 다음시간에는 배열부분으로 찾아오겠습니다. 이상 초보개발자 갓준이었습니다~~~!!!

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함