Jay's Developer Note

[JAVA] 자바 언어 기본 문법 - 6(분기문) 본문

JAVA

[JAVA] 자바 언어 기본 문법 - 6(분기문)

Jay(J) 2022. 2. 13. 00:43
728x90

분기문

프로그램의 흐름을 강제로 특정 위치로 이동시키는 문법이다.

break 문, continue 문이 있다.

break 문

switch 문을 빠져나오거나 반복문에서 가장 가까운 블록으로 빠져나올 때 사용한다.

for (int i = 0; i < 10; i++) {
  // i 값이 5 보다 커지면 End of for 로그를 찍는다.
  if (i >= 5) break;
  System.out.println("for..");
}
System.out.println("End of for");

break 문은 해당 break 를 쓴 반복문 블록 밖으로만 나가게 된다.

근데 만약 다중 for 문에서 break 를 쓴다면 어떻게 될까?

for (int i = 0; i < 100; i++) {
  for (int j = 0; j < 100; j++) {
    if ((i + j) == 99) {
      System.out.println("i : " + i + " j : " + j);
      break;
    }
  }
  // break 를 쓰면 여기로 와서 다음 루프를 실행한다.
}

0 + 99, 1 + 98, 2 + 97, ......, 99 + 0 조합까지 100개의 로그가 찍힐 것이다.

하지만 0 + 99 하나만 찍고 for 문 전체를 빠져나가고 싶다면 어떻게 해야 할까?

goto 로 레이블: 을 사용하면 된다.

comeHere: // 레이블 설정
for (int i = 0; i < 100; i++) {
  for (int j = 0; j < 100; j++) {
    if ((i + j) == 99) {
      System.out.println("i : " + i + " j : " + j);
      break comeHere; // 1 번째 줄로 이동해서 for 문을 빠져나간다
    }
  }
}
continue 문

반복 중 continue 문을 만나면 이후 코드는 실행되지 않고 그다음 루프를 실행한다.

for (int i = 0; i < 10; i++) {
  // i 값이 짝수면 로그를 찍지 않고 다음 루프를 실행
  if ((i % 2) == 0) continue;
  System.out.println("odd : " + i);
}
728x90