IF문과 SWITCH문은 어떤 차이점이 있나요?
IF문과 SWITCH는 어떨때 주로 사용하나요?
주로 분기 3개 이상은 SWITCH 그 이하는 IF문을 사용한다고 하는데
어떤 차이점이 있는지 모르겠습니다.
단지 가독성의 차이인가요?
안녕하세요. 아하(a-ha) 프로그래밍 지식 답변자 입니다.
언어마다 컴파일러가 어떤 방식으로 해독을 하느냐에 따라 다르지만, 특정 언어에서는 if 문은 branch statement로 위에서부터 순차적으로 조건을 탐색합니다. 반면 switch 문은 jump statement로 입력된 값을 보고 특정 위치로 바로 점프하여 성능 향상을 누릴 수 있습니다.
맞는지 확인해 보려면 질문자님이 사용하시고 계신 언어의 설명서를 참고해야 할 것 같습니다.
답변이 됐으면 합니다. 좋은 하루 되세요!
예시)
a 변수의 숫자가
1 은 "hello" 출력
2 는 "bye" 출력
3 은 "love" 출력
4 는 "angel" 출력 하라고 할경우?
if 명령은
if ( $a == 1) { echo "hello"; } else if ( $a == 2) { echo "bye"; } else if ( $a ==3) { echo "love"; } else { echo "angel"; }switch 명령은
switch ( $a ) { case 1: echo "hello"; break; case 2: echo "bye"; break; case 3: echo "love"; break; case 4: echo "angel"; break; }가독성도 있겠지만 비교해야 할 조건이 많다면? 다중if 문보다는 switch 가
훨씬 효과적입니다
if문고 switch문의 차이는 if문은 조건이 개발자 마음에 따라 조율을 할 수 있다는 장점이 있지만 switch 문은 변수 하나 값에 따라 조건이 들어가기에 if문을 쓰게 될때 조건을 놓칠 수 있습니다. 또한 if문은 조건문 안에 있는 모든 조건을 검사하기 때문에 실행 시간이 더 들 수 있습니다. switch 문을 쓰면 하나의 조건에 대해서만 일차적으로 검사하기 때문에 수행시간을 줄일 수 있습니다.
안녕하세요
IF 문은 조건문이고, 자바의 경우 보통 아래와 같은 형태로 동작합니다.
if(조건식){ 실행문; 실행문; }else if(조건식){ 실행문; }else{ 실행문; }위에 적은것 처럼 조건식이 참일때 if문 내의 실행문이 동작하게 되고, 참이 아닐때는 else if 구분의 조건식을 보고 참이면 else if 내의 실행문이 실행, 조건식이 참이 아니었을때는 else 문의 실행문이 동작합니다.
설명드린바와 같이 if문은 조건식을 개발하는 사용자가 마음대로 정할 수 있습니다. 좀 자유로운 반면에
Switch 문의 경우는 변수 대입값에 따라 Case 문에서 제어가 됩니다.
switch(변수){ case 값1 : 실행문; break; case 값2 : 실행문; break; default; }변수라고 표현된 부분의 값이 어떠냐에 따라 Case 문의 값에 매칭되는 실행문이 실행이 됩니다.
IF문으로 해당 switch 문을 동일하게 동작하게끔 코딩 할수 있지만 코드가 좀더 길어지고 값만 약간 변경된 조건식을 여러번 else if 문으로 작성을 해야 되거나 아니면 중첩 if문을 사용해야 합니다.
switch 문은 좀더 간결하게 표현할 수 있죠. 대신 switch 문의 경우 복잡한 조건식을 넣을수 있는게 아니라 단순 값 비교라서 좀 복잡한 로직에는 사용하기 어렵습니다.
예를 들어 A가 사과, B도 사과 여야 먹는다라는 실행문을 만들고 싶으면 IF문에서는 조건식에서 한번에 처리가 가능하지만 switch에서는 복잡해지죠 변수 자체를 조건식을 나타내는 Boolean 값으로 판단하게 해야 할수도 있습니다.
답변이 되었으면 하네요
좋은하루 되세요