TIL: 스스로 이해한 것을 바탕으로 정리하였기에 오류가 있을 수 있습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다.
switch문
switch조건식 안의 동등 비교대상자와 case뒤에 기술된 값과 비교했을 때 일치할 경우 코드 실행
동등 비교와 같이 확실한 값의 조건을 기술할 수 있다.
* Swich문과 if문과의 차이점
- if문은(조건식) => 조건식도 복잡하게 기술 가능, 범위 제시 가능
- switch문 (조건식 x) => 확실한 값의 조건만 기술 ( 동등 비교같이 수행 )
[표현식]
switch ( 동등비교할 대상자 ) {
case 값1: 실행코드1; break;
case 값2: 실행코드2; break;
case 값3: 실행코드3; break;
...
default: 위의값들이다일치하지않을경우 실행할코드;
}
switch문의 주의사항 : break; 를 만나야 switch블록을 빠져나갈 수 있음 (break 없을 시 다음 case로 넘어간다)
예시 1) 사용자가 입력한 숫자 1~3에 따라 빨간불 파란불 초록불 출력.
System.out.println ( " " ) ; 을 대신하여 String 변수에 해당 값을 선언해보기
이때 문제점이 발생하는데, default의 값은 해당 구문과 밑에 있는 입니다 구문이 함께 출력되게 된다.
그 이유는 break ; 나 return ; 등의 코드로 코드를 중단시켜주지 않았기 때문이다.
default 값에 중단 코드만 넣어주면 간단하게 해결된다.
예시 2) 사용자가 선택한 과일의 가격을 출력하기.
만약 여기에 break ; 구문을 넣지 않았다면?
모든 과일이 복숭아의 가격으로 출력되는 것을 볼 수 있는데, 그 이유는 price라는 변수가 새로 선언되었기 때문이다.
break ; 없이도 사용 가능한 예시를 알아보자
예시 1) 한 사이트의 회원 등급을 보면 등급이 높아질수록 권한이 많아진다.
만약 3등급은 읽기, 글쓰기, 관리권한이 있고, 2등급은 글쓰기와 읽기, 1등급은 읽기 권한만 있다고 가정해보자.
3등급은 해당 코드의 권한과 그 아래 권한인 글쓰기와 읽기를 함께 출력하게 될 것이다.
2등급은 글쓰기와 읽기, 그리고 1등급은 본인의 코드에 있는 읽기 권한만 출력될 것이다.
'Java' 카테고리의 다른 글
[Java] 제어문2_반복문(for); for문과 예시, 그리고 별찍기** (0) | 2020.12.28 |
---|---|
[Java] Math.random( ); 랜덤 숫자 불러오기와 .length( ); 문자열길이 (0) | 2020.12.28 |
[Java] 제어문1_조건문(if); 단독 if문과 if-else문, 그리고 if-else if문 (0) | 2020.12.23 |
[Java] 연산자; 비교연산자,논리연산자 그리고 삼항연산자 알기 (0) | 2020.12.21 |
[Java] 연산자; 증감연산자 자세히 알기(전위연산,후위연산,대량연산) (0) | 2020.12.21 |
댓글