java/기본문법

[조건문과 반복문] switch

2022. 1. 25. 16:23

switch문

 

if문의 조건식이 많아지면 경우의 수가 증가하여 복잡해진다. switch문은 이러한 문제를 해결해 처리해야 할 경우의 수가 많을 경우 표현을 간결하게 할 수 있다. switch문의 사용을 알아보자.

switch문의 사용 예시

 

조건식을 계산한다. 계산된 값이 일치하는 case문으로 이동한다. 이후의 문장들을 break문이나 swtich문의 끝이 나타날 때 까지 진행한다.

 

 

 

조건에 따라 계산의 흐름이 진행되는 건 if문과 다르지 않다. 그렇다면 if문과 switch문의 차이점은 무엇일까?

switch문과 if문

 우선 if문의 조건식이 값이 true, false 두 개의 값을 갖는 반면 switch문은 정수, 문자열의 값을 갖는다. 또한 if문은 많은 수의 괄호안에 다양한 조건식이 사용되는 반면에 switch문은 하나의 괄호와 조건식이 쓰인다. 그래서 if문에 비해 경우의 수가 많을 때 유용하다. 마지막으로 switch문을 쓰기 위해서는 제약조건이 있는 반면에 if문은 그에 비해 상대적으로 제약조건이 적다.

 

switch문의 제약조건

 switch문은 두 가지 조건이 있다.

 

1.switch문의 조건식 결과는 정수 또는 문자열이어야 한다.

2.case문의 값은 정수 상수(문자 포함,변수는 안된다), 문자열만 가능하며, 중복되지 않아야 한다.

 

 

public static void main(String[] args) {
	int num, result;
    final int ONE = 1;
    	...
    switch(result) {
    	case '1':			//OK. 문자리터럴(정수 49와 동일)
        case ONE:			//OK. 정수 상수
        case "YES":			//OK. 문자열 리터럴. JDK 1.7부터 허용
        case num:			//에러. 변수는 불가
        case 1.0:			//에러. 실수도 불가
        ...
	}

 


출처:자바의 정석 기초편(저자:남궁성, 출판사:도우출판)

'java > 기본문법' 카테고리의 다른 글

[조건문과 반복문]break문, continue문  (0) 2022.01.28
[조건문과 반복문]while문, do-while문  (0) 2022.01.28
[조건문과 반복문] for문  (0) 2022.01.25
[조건문과 반복문] 임의의 정수만들기 Math.random()  (0) 2022.01.25
[조건문과 반복문] if문  (0) 2022.01.25
'java/기본문법' 카테고리의 다른 글
  • [조건문과 반복문]while문, do-while문
  • [조건문과 반복문] for문
  • [조건문과 반복문] 임의의 정수만들기 Math.random()
  • [조건문과 반복문] if문
각시탈코더
각시탈코더
각시탈코더
각시탈코더
각시탈코더
전체
오늘
어제
  • 분류 전체보기 (203)
    • java (46)
      • 객체지향 (20)
      • 기본문법 (8)
      • 자바의 정석 연습문제 오답노트 (9)
      • 백준 알고리즘 (9)
    • Spring (17)
      • SpringMVC (8)
      • Spring DI와 AOP (5)
      • REST API와 Ajax (1)
      • Spring 프로젝트 (1)
      • Spring Security (0)
    • DB (47)
      • Oracle (15)
      • SQL오답노트 (25)
      • 튜닝 (0)
      • ERD (1)
      • DB 모델링 (5)
    • Servlet & JSP (3)
    • JDBC (2)
      • 기본 (1)
      • 스프링JDBC (1)
    • MyBatis (2)
    • JavaScript (2)
      • 코딩애플 (0)
      • 문법 (1)
    • React (0)
      • 코딩애플 (0)
    • HTML (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • CSS (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • Linux (0)
    • Git & GitHub (2)
      • Git (1)
    • CS (19)
      • 네트워크 (6)
      • HTTP (7)
      • 컴퓨터구조 (0)
      • 자료구조와 알고리즘 (2)
      • 기타 (4)
    • 개발설정 (2)
    • 기술면접 (0)
      • JAVA (0)
      • Spring (0)
      • DB (0)
      • 네트워크 (0)
      • 공통 (0)
    • 프로젝트 (2)
      • 게시판만들기 (2)
    • 기혁씨의 삽질표류기 (28)
    • 참고자료 (2)
      • 국비수업 (0)
      • 당당 프로젝트 (1)
    • 뉴렉처 (17)
      • 자바 (11)
      • 자바스크립트 (3)
      • 키워드 (0)
      • 숙제 (0)
      • CSS (0)
      • DB (3)
      • 서블릿 (0)
      • 스프링 (0)
      • DOM (0)
    • 내가 만든 학습그림 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 에러
  • 네트워크
  • 자바의정석
  • 공부
  • 뉴렉처
  • It
  • 서브쿼리
  • 배열
  • 국비수업
  • 모두의네트워크
  • 쿼리
  • 자바의정석기초편
  • 백엔드
  • SQL
  • 오류
  • db
  • 자바
  • spring
  • 오라클
  • 코딩
  • Java
  • 개발자
  • 객체지향
  • 프로그래머스
  • 스프링
  • 연습문제
  • 알고리즘
  • 웹프로그래밍
  • 백준
  • Oracle

최근 댓글

최근 글

hELLO · Designed By 정상우.
각시탈코더
[조건문과 반복문] switch
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.