TIL#10 반복문

Mixer·2022년 5월 6일
0
post-thumbnail

반복문

반복문의 종류는 for, while, do-while이 있으며,
for문과 while문은 서로 변환이 가능하며 반복문을 작성할 때 어느 방향을 선택해도 좋지만,
for문은 반복횟수를 알고 있을 때 주로 사용하고, while문은 조건에 따라 반복할 때 사용한다

for문

for문은 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행한다.

public class Main {
  public static void main(String[] args) {
    int sum = 0;
    for(int i = 0 (초기화); i < 10 (조건식); i++ (증감식) ) {	
      sum += i;
    }
    System.out.println(sum); // 1~9의 합인 45가 출력됩니다.
  }
}

반복문에선 i라는 변수명을 많이 사용한다. i(iterator 반복계수)를 의미한다.
만약 반복문이 없다면 sum = sum + (숫자); 를 10번이나 사용해서 작성 해야할 것이다.
하지만 for문을 사용한다면 코드량을 획기적으로 줄일 수 있다.

  • 초기화는 for문이 시작할 때 최초 한번만 수행되며, 사용할 변수의 초깃값을 설정한다.
  • 조건식은 계속 반복할지 여부를 결정하는 조건, 조건식 안의 값이 true이면 실행문을 실행시키고, false라면 더 이상 블록을 실행하지 않고 끝난다.
  • 증감식은 반복 횟수를 결정하는 규칙으로, 변수에 값을 더하거나 곱하는 등 수행 방식을 지정한다.
    ++는 반복문에서 자주 사용하는 증감연산자로, 피연산자의 값을 1 증가시킨다.

쉬운 이해 예시론,조건식을 충족하는 동안 초기화식부터 시작해서 증감식의 규칙을 따라 실행 된다.
조건이 충족하지 않으면, 실행문을 실행하지 않고 끝나게 된다
그러니 초기화식이 필요 없는 경우엔 초기화식을 생략 할 수 있다.

for(int i=0, j=100; i<=50 && j>=50; i++, j--) {
  실행문;
  실행문;
}
// 초기화식이나 증감식도 둘 이상이 될 수 있다.

enhanced for문 (향상된 for문)

향상된 for문은 반복실행을 하기 위해 카운터 변수와 증감식을 사용하지 않는다.
배열 및 컬렉션 항목의 갯수만큼 반복하고 자동으로 for문을 빠져나간다.

public class EnhancedForLoop {
  public static void main(String[] args) throws Exception {
    String[] names = {"kimminseok", "minthug", "kms"};
    for(String name : names) {
      System.out.println(name + "님은 자바를 공부중 입니다.");
    }
  }
}
/*
kimminseok님은 자바를 공부중 입니다.
minthug님은 자바를 공부중 입니다.
kms님은 자바를 공부중 입니다.
*/

for문의 괄호 안에는 배열에서 꺼낸 항목을 저장할 변수 선언, 콜론(:), 그리고 사용할 배열이 작성된다.
향상된 for문을 처음 실행 할 때는, names 배열에서 가져올 첫번째 값이 존재하는지 확인 후, 값이 존재하면 해당값을 변수인 name에 저장한다.
그리고 그 안의 실행문을 실행, 블록 내부의 실행문이 모두 실행 되면 다시 names 배열에서 가져올 값이 있는지 확인 후 만약 가져올 다음 항목이 없다면 자동적으로 for문을 종료한다.

while문

while문은 조건식이 true일 경우 계속해서 반복한다.

int i = 0, z = 0;
while (i <= 10){
	z += i;
    i ++;
}
System.out.println(z);
  • i과 z 이라는 정수 타입의 변수를 선언하고 초기값으로 0을 대입
  • i은 현재 10보다 작으므로 블록 안의 코드가 수행
  • z이 현재의 i만큼 증가하고 i는 1 증가
  • i는 현재 1입니다. 여전히 10보다 작으므로, 실행 블록 안의 코드가 두 번째로 수행
  • i이 10인 경우까지 반복
  • i는 현재 11 이다. 조건식이 거짓이므로 while문이 종료

do-while문

do-while문은 조건식에 반복해서 실행하는 것이 while문과 동일하다.
while문은 시작 할 때부터 조건식을 검사하여 블록 내부를 실행하지 결정하지만, 경우에 따라서 블록 내부의 실행문을 우선 실행시키고 실행 결과에 따라서 반복 실행을 계속 할지 여부를 경우도 있다.

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

break문

break문은 반복문인 for, while, do-while, switch문을 중지 시킬때 사용된다.

public class Main {
    public static void main(String[] args){
        Outer : for(int i = 3; i < 10; i++){
            for(int j = 5; j > 0; j--){
                System.out.println("i " + i + " j "+ j);
                if(i == 5){
                    break Outer;
                }
            }
        }
    }
}
i 3 j 5
i 3 j 4
i 3 j 3
i 3 j 2
i 3 j 1
i 4 j 5
i 4 j 4
i 4 j 3
i 4 j 2
i 4 j 1
i 5 j 5

continue문

continue문은 반복문인 for,while,do-while문에서만 사용 되는데,
블록 내부에서 continue문이 실행되면 for문의 증감문 혹은 while, do-while문의 조건식으로 이동하여 작동한다.

continue와 break의 차이점은 반복문 종료 여부이다.
continue는 반복문을 종료하지 않고 다음 차례로 넘어가 계속 반복을 수행한다.
break처럼 continue도 보통 if문과 함께 사용하는데, if문의 조건을 만족하는 경우 continue를 실행하여 그 이후 코드를 실행하지 않고 다음 반복으로 넘어간다.

profile
Minthug'life

0개의 댓글