switch 문 내 '폴스루'를 보고합니다.

폴스루는 case 라벨 뒤에 오는 일련의 실행 가능한 구문이 다음 case 라벨 앞에서 제어를 전달하도록 보장되지 않는 경우 발생합니다. 예를 들어, 이는 브랜치에 break 문이 누락된 경우 발생할 수 있습니다. 그러한 경우, switch 식이 폴스루된 라벨의 값과 같지 않더라도 제어는 해당 switch 라벨 뒤에 오는 구문으로 폴스루합니다. 이러한 구문은 의도된 경우도 있으나 혼란스러울 수 있으며 보통 오타가 난 결과입니다.

이 검사는 정규식 패턴 (?i)falls?\s*thro?u과 일치하는 텍스트로 된 주석이 추가된 모든 폴스루를 무시합니다.

다음 브랜치로 폴스루할 수 있는 브랜치에 break를 추가하는 수정이 있습니다.

예:


    switch(x) {
      case (4):
          if (condition) {
              System.out.println("3");
              // break 없음
          } else {
              break;
          }
      case (6):
          System.out.println("4");
    }

빠른 수정을 적용한 후:


    switch(x) {
        case (4):
            if (condition) {
                System.out.println("3");
            } else {
                break;
            }
            break;
        case (6):
            System.out.println("4");
    }