Java 프로그래밍 기본 (13) - 반복문
728x90

안녕하세요~ 항상 나아가는 개발자 pink_salt 입니다!

코드프레소 Java 웹 개발 체험단 활동을 하고 있습니다.

13번째 java 포스팅입니다~ 고고!

이번엔 '처음 시작하는 Java 프로그래밍' 강의를 듣고 공부한 내용을 정리하여 열세 번째 포스팅을 진행하겠습니다.


조건문을 배우기 전에 제어문을 확인했었습니다.

제어문에는 조건문, 반복문이 있습니다.

이번엔 특정 코드를 반복해서 실행하는 반복문에 대해 알아보겠습니다.

 

반복문의 개념

  • 특정 코드 집합(코드 블록)을 반복적으로 수행하는 것입니다.
  • 주어진 조건을 만족할 때까지 반복하거나 일정 횟수만큼 반복합니다.

 

for문

  • 특정 조건에 따라 코드를 반복하여 실행합니다.
  • 예제 코드

이러면 HelloWorld! 가 5번 반복하게 됩니다.

문법

  • 반복문을 위한 for 키워드를 사용하여 구문을 시작합니다.
  • 반복을 위한 특정 조건을 (초기식; 조건식; 증감식)으로 구분합니다.
  • 중괄호 {} 로 for문의 코드 블록을 명시합니다.
  • 조건식의 결과가 true 인 동안 반복적으로 실행할 코드들을 입력합니다.
for (초기식; 조건식; 증감식) {
	조건식의 결과가 true인 동안 반복적으로 실행할 코드들;
}

 

for 문의 흐름

  1. 초기식을 실행합니다.
  2. 조건식을 실행하여 조건식의 결과가 true 이면,
  3. 반복문 내의 코드를 실행합니다.
  4. 코드의 실행이 모두 끝나면 증감식을 실행합니다.

4번까지 수행하면 다시 2를 수행하여 2~4를 반복합니다.

만약 2번을 수행하는데 조건식의 결과가 false이면 반복문은 종료됩니다.

그림으로 표현하면 아래의 그림과 같습니다. 가장 왼쪽의 노란 화살표가 false가 발생하였을 경우를 말합니다.

예제 코드 

정수 1부터 100까지 모두 더하기

1~100 정수 더하기 (반복문 활용)


for 문의 제어 - 증감식

증감식은 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식입니다.

  • 증가 연산자(++), 감소 연산자(--)를 통해 제어합니다.
  • 대입 연산자를 활용할 수 있습니다.
    • 위의 표에 나타나는 방법은 ++, --은 1을 증가 또는 감소시킬 때 쓰지만  +=, -=을 쓸 때는 뒤에 더 큰 숫자를 써서 증감의 정도를 바꿀 수 있습니다.

for 문에서 초기값과 증감식, 조건식에 따른 제어가 되는 것을 보여드리겠습니다.


반복문과 배열

배열 객체에 저장된 데이터를 반복적으로 접근할 때 반복문을 활용할 수 있습니다.

  • 배열의 길이를 가져오는 배 열명. length를 활용할 수 있습니다.
  • 배열의 값을 가져오는 경우는 배열명[index]을 활용할 수 있습니다.

Enhanced for 문

  • 배열 내 저장된 모든 값을 순차적으로 참조하기 위한 다른 형태의 for문을 말합니다.
  • for - each style이라고 불립니다.

for - each style

문법

  • for 문의 첫 번째 값은 저장할 원소 데이터의 자료형과 변수명을 명시합니다.
  • 콜론 : 을 기재합니다.
  • 원소 데이터가 저장되어 있는 배열의 이름을 명시합니다.
  • 중괄호 {} 내에는 명시한 길이만큼 실행할 코드를 작성합니다.

  • Enhanced for 문은 별도의 종료 조건을 명시하지 않습니다.
  • 배열에서 가져올 원소 데이터가 더 이상 없는 경우 반복문은 종료됩니다.
  • 주로 배열, 컬렉션 등에 저장된 원소 데이터를 읽는 목적으로 사용됩니다.

 

Enhanced for 문의 흐름

  1. 배열로부터 원소 데이터를 가져와 (순차적으로) 변수에 저장한다.
  2. 반복문 내의 코드를 실행한다. 이때 배열의 원소 데이터가 저장된 변수를 활용할 수 있다.
  3. 코드 실행이 끝나면 1부터 반복한다.

흐름에 따라서 languages 배열에 있는 String 자료형의 변수 language에 Java부터 시작하여 Python, C, C++ 이 들어가서 다 출력되게 됩니다.

for - each 스타일은 반복문에서 발생하기 쉬운 배열의 index오류가 발생하지 않아서 편리하게 사용할 수 있습니다.


중첩된 for문(Nested for Statement)

  • for 문 안에는 또 다른 for 문을 중첩하여 실행할 수 있습니다.
  • 중첩의 횟수는 제한이 없으나 가독성 및 복잡성을 고려해야 합니다.

예시 ) 주문별 프로페스 출력하기

처음엔 order변수에는 Order 1이 고정이 되고 process에는 Checking부터 Delivering까지 들어가서

이렇게 결과가 나오게 됩니다.

이렇게 안쪽의 코드가 실행이 되면 다시 바깥의 for문에서 Order 2로 바뀌어서 안쪽 코드가 반복되고 Order 3로 바뀌어서 또 반복됩니다.

그래서 결국 결과가 밑의 사진처럼 나오게 됩니다.


while문(while Statement)

  • 반복문 구현을 위한 방법 중 하나로 구조가 비교적 간결합니다.

문법

  • 반복문을 위한 while 키워드를 사용하여 구문을 시작합니다.
  • 반복을 위한 조건식을 작성합니다.
  • 중괄호 {} 내에는 조건식의 결과가 true인 동안 실행할 코드를 작성합니다.
while (조건식) {
	조건식의 결과가 true인 동안 반복적으로 실행할 코드들;
}

while문의 흐름

  1. while문의 조건식의 결과가 true이면
  2. 반복문 내의 코드를 실행합니다.
  3. 코드의 실행이 모두 끝나면 1번 조건식을 다시 실행합니다.

만약 1번의 while문 조건식의 결과가 false라면 반복문은 종료됩니다.

 

무한 루프(infinite loop)

  • while 문은 조건식 결과가 계속 true이면 반복문을 실행합니다.
  • while문 중괄호 {} 내에서는 조건식의 결과를 false로 만들 수 있는 별도의 코드가 필요합니다.
  • 그렇지 않으면 무한 루프가 발생합니다.

예시 )

이 코드에서는 start가 while문 안에서 변화되지 않기 때문에 조건식 start < 5에 항상 만족합니다.

그렇기 때문에 이 while문은 끝나지 않게 됩니다.

while 문을 활용한 반복문 작성 시에는 코드 내에서 의도하지 않은 무한 루프가 발생할 가능성이 있는지 여부를 충분히 검토해야 합니다. 


반복문의 제어 break, continue

  • 반복문은 조건식의 결과가 true인 동안에는 반복적으로 실행됩니다.
  • 따라서 원하는 시점에 반복문을 제어(완전 중단 또는 현재 반복의 중단)를 할 수 있는 명령어 break, continue가 존재합니다.
  • break 문은 반복문을 완전히 중단시키는 명령어입니다.
  • continue 문은 현재 반복을 중단하고 다음 반복으로 넘어가게 하는 명령어입니다.

 

break 문

  • 자신과 가장 가까운 반복문 전체의 실행을 중단합니다.
    • 이 말은 반복이 중첩되었을 때 가장 가까운 반복문을 중단시킨다는 뜻입니다.
  • 주로 반복문 초입에 if문과 함께 사용됩니다.

 

 Continue 문

  • 반복문 진행 중에 continue를 만나면 현재 반복을 중단하고 단음 반복을 위해 조건식으로 이동하여 true이면 반복문을 계속 실행합니다.
  • if 문 내부에서 주로 사용됩니다.

 


다음 게시물에서는 새로운 강의로 공부하고 정리해서 다시 찾아뵙겠습니다!

열심히 나아가는 개발자 이었습니다.

go go!

코드프레소 URL: https://www.codepresso.kr/

 

프리미엄 IT 교육 서비스 - 코드프레소

 

www.codepresso.kr

 

728x90
반응형