728x90
반응형

1. 반복문

 

 반복문은 어떤 작업을 반복해서 진행할 때 사용되는 코드로 반복문에는 for, while, do-while문이 있습니다.

오늘은 반복문에 대한 예제를 알아보면서 어떤 경우에 각각의 반복문들을 효율적으로 사용할 수 있는지 알아보고 메모리와 관련되어 자바가 어떻게 동작하는지에 대해서 알아보도록 하겠습니다.

 

 

 

  1) For문

 

 

 

 

위에 코드는 1부터 5까지의 반복적인 작업을 하는 코드입니다. 이런 방법으로 반복적인 작업을 수행하게 된다면 코드의 양은 어마어마하게 증가할 것입니다. 이런 경우 for문을 사용하게 된다면 코드의 양을 줄일 수 있다는 것은 시중에 나온 대부분의 교재에서 볼 수 있는 내용입니다.

하지만 부족했던 저의 날을 돌아보며 조금 더 쉽게 이해를 하기 위해서 설명을 조금 길게 할 예정입니다.

먼저 sum이라는 int형 변수를 선언과 동시에 0으로 초기화 하였습니다. 이 후 아래줄 부터 sum + 1이라는 값을 sum이라는 변수에 대입합니다.

어떤 변수에 값을 더하여 자기자신에 대입하는 sum = sum +1 이라는 코드를 줄여서 쓰면 sum += 1 이라고 바꿔서 쓸 수 있습니다.

 

자, 이제 반복에 대한 얘기를 해보면 저는 처음에 반복문을 처음 접했을 때 가장 어려웠던 문법이 for문이었습니다.

위에 코드를 for문으로 바꾸면 for (i = 1 ; i<=5; i++)으로 시작하여 { }안에 sum+=i; 후에 System.out.println("1~5까지의 합은" +sum+"입니다."); 가 되는데요.

제가 어려웠던 이유는 for 다음 ( )안에 어디서부터 시작해야할지 루프가 돌아가면서 어떤 작업을 해야할지를 몰랐기 때문입니다. 저와 같은고민을 하고 계신분들이 많을 것이라고 생각이 됩니다.

 

for문으로 바꿀 수 있을 것 같은데 어떻게 해야할지를 모르시는 분들에게 나름의 노하우(?)를 알려드리면 

 

1. 코드를 모니터가 뚫어질 정도로 봅니다.

2. 반복적으로 코드에 나오는 변수 혹은 데이터를 찾습니다. 

-- 여기서 찾은 데이터가 for문 처음에 선언되는 변수와 같은 타입일 가능성이 높습니다. 실행결과를 알고 있다면 실행결과에서 찾는 것도 하나의 방법입니다.

3. 규칙적으로 증가, 감소 하는 데이터를 손으로 적습니다.

-- 눈으로만 봐서 안보이는 것들은 손으로 적어보게되면 훨씬 더 빨리찾고 규칙을 알아차리는데도 더 짧은 시간이 소요됩니다.

 

이제 그럼 for문을 완성 시켜봅시다.

앞의 1번에서 찾은 데이터 타입과 반복되는 데이터타입이 같은지 확인합니다. 같다면 2번에서 반복의 끝을 알아냅니다. 반복의 끝이 정해지지 않았다면 while문을 쓰는게 더 수월할 수 있습니다. 그럼 끝이 정해졌다는 가정하에 규칙을 알아내어

for(    ;    ;    )  이 사이에 넣어주기만 하면 for문은 완성됩니다. 이제 완성하신 for문을 적재적소에 사용하시면 되겠습니다.

 

 

 

 


 

  2) While문

 

 While문은 for문보다 더 간단한 구조를 가지고 있습니다. 

 

 

 

 

 

 

그림과 같이 while문 처음 괄호 안에 조건이 false가 되면 while문에 진입하지 않고 while문 아래로 건너 뛰게 됩니다. 그리고 그 이후에 코드를 진행합니다. 조건식이 true일 경우 while문의 { }안쪽의 실행문은 계속 반복됩니다. 이때 조건이 변하지 않고 계속 True의 값을 가지게 된다편 프로그램은 무한 loop에 빠지게 되므로 유의해서 코드를 작성하여야 합니다.

 

 

 

 

 

 

3) do-while문

 

do - while문은 조건식에 의해 반복 실행되는 것은 while문과 동일합니다. 하지만 do - while문의 경우 블록 내부의 실행문을 우선 실행시키고 실행 결과에 따라서 반복 실행을 계속할지 결정합니다. do - while문을 작성 시에 주의할 점은 while( )문 뒤에 반드시 세미콜론(;)을 붙혀야 한다는 점입니다.

 

 

 

 

 

 

 그림과 같이 최초에 do안에 코드를 한번 실행시킨후에 while에 붙은 조건식을 검사 합니다. 그리고 true일 경우에는 다시 do{ }안의 문을 실행시키고 while의 조건이 false가 될 때까지 반복합니다.

아래 그림은 1부터 5까지의 합을 각각 for문, while문, do-while문을 이용하여 구한 코드 입니다. 앞의 설명과 함께 보신다면 이해가 수월하실 것입니다.

 

 

 

 

 

 

 

 

 

2. 조건문

 

 조건문이란 { 에서 시작해서 }까지 위에서 아래로 실행하는 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 흐름 제어문입니다. 제어문은 조건식과 중괄호블록으로 구성되는데, 조건식의 연산 결과에 따라 블록 내부의 실행 여부가 결정됩니다. 조건문에는 if문과 switch문이 있습니다.

 

 

 

 1) if 문

 

 if문은 조건식의 결과에 따라 블록 실행 여부가 결정됩니다. if문은 그림과 같은 흐름을 보입니다.

 

 

 

 

조건식에는 true 또는 false값으로 나타낼 수 있는 연산식이나 boolean변수가 올 수 있습니다. 그림과 같이 조건식이 true이면 블록을 실행하고 false이면 블록을 실행하지 않습니다.

 

그리고 마지막 } 뒤에 else {   }가 있다면 if - else문이 됩니다. 첫번째 조건식이 true이면 if문 블록이 실행되고 false이면 else블록이 실행 됩니다. 조건식의 결과에 따라 이 두 개의 블록 중 어느 한 블록의 내용만 실행하고 전체의 if문을 벗어나게 됩니다.

 

 

 

 2) switch문

 

 switch문은 if문과 마찬가지로 조건문입니다. 하지만 if문과 다른점은 switch문은 변수의 값에 따라서 실행문이 결정되기 때문에 같은 기능의 if문보다 빠르게 코드가 진행됩니다. swich문은 다음과 같은 형식으로 진행됩니다.

 

 

 

 

 

case 끝에 break가 붙은 이유는 다음 case를 실행하지 말고 switch문을 빠져나가기 위해서입니다. break가 없다면 다음 case가 연달아 실행되는데 이때는 case의 값과 상관없이 실행되기 때문입니다.

 

이번 포스팅은 다소 지루할 수 있는 기본적인 문법에 대해서 살펴보았습니다. 문법을 쉽게 익히는 방법은 코딩을 많이 해보는것 말고는 없습니다. github이나 자바 예제 프로그램을 찾아서 직접 코딩해보고 그것도 여유치 않으시다면 우리가 일상생활에서 접할 수 있는 예를 들면 100까지의 3의배수의 합을 구한다던지, 점수별로 등급을 매기는 간단한 프로그램을 작성해 보시면 반복문과 조건문에 대해서 많이 이해를 하실 수 있을 것입니다. 오늘은 여기까지 살펴보겠습니다. 감사합니다.

 

 

 

 

 

 

1. 반복문의 종류를 알 수 있다. for while do - while문의 차이점을 정확하게 알고 적재적소에 맞춰서 코딩할 수 있다.

 

2. 조건문인 if 문, if ~ else문, switch문을 이해하고 적절하게 이해할 수 있다.

 

★각각의 반복문과 조건문 모두 하나 이상의 주제를 정해서 코딩해보기!

 

 

 

 

728x90
반응형

+ Recent posts