내 옆에 지원자가 받은 질문인데, 그냥 가독성 차원에서 switch가 더 좋다고밖에 설명을 못하더라. 컴파일러 차원에서 if elseif는 순서대로 조건검사하는 거고 switch는 goto문(jump)으로 적용되는건가?
If와 switch 차이?
엥(203.226)
2017-12-13 12:04
추천 2
댓글 21
다른 게시글
-
It 일본취업 알려줌 [1]익명(175.223) | 17.12.13추천 1
-
증권사 SM경험있는 갤럼있음? [2]충남라이온..(vpqmflwm80) | 17.12.13추천 1
-
자바 두명타세요라는 짤있ㅈ나 [4]ㄴㄷㅅ·(223.62) | 17.12.13추천 0
-
python3에서 크롤링 해 본 사람 있냐? 도움 좀 [5]익명(114.70) | 17.12.13추천 0
-
yum으로 설치한 php나 httpd mysql은 [6]패밀리마트(andechan) | 17.12.13추천 0
-
KBS미디어 vs. SK엔카 vs. 디케이테크인 vs. 신세계SSG [3]^^(218.52) | 17.12.13추천 1
-
혹시 웹에서 하드웨어 제어하는 방법 아는사람있어? 엑티브 x빼고 [1]asd(203.239) | 17.12.13추천 0
-
깃허브에 한글안쳐지는거 좀 빡취넹ㄴㄷ(110.8) | 17.12.13추천 0
-
소개팅 & 채팅앱 이름 공모한다 치킨드림 [5]ㅇ어오(39.7) | 17.12.13추천 0
-
밑에 프로그래밍 추천책 올린사람 보셈 [2]치카냥(miku122) | 17.12.13추천 2
케이스 매칭과 패턴 매칭 차이랫는데
프갤 옛날 개념글에 차이 적힌거 있어영
switch는 break없으면 아래 case에 조건이 부적합해도 무시하고 쫘르륵 실행되는것..?ㅇ
나도 옛날에는 컴파일러가 졸라 똑똑해서 table lookup 해서 바로 jump할 줄 알았는데, 실제로 동작은 라벨붙은데마다 다 들러서 확인하던데. 물론 else if 동작하는것보다는 빠를거 같긴한데. 요새는 성능과 무관하게 switch를 쓸수있는곳에서는 switch를 쓰고있음. else if 보다 구조가 깔끔한 느낌이 듬
그거 케바케임
일렬로 비교점프하는거 있고 이진탐색처럼 들어가는게 있고 실행코드 길이가 비슷비슷하면 케이스 값에 길이 곱해서 바로 뛰는것도 있고
백엔드 만드는 사람 맘대로할수있음
보면서 궁금해졌는데, 스위치의 조건으로 변수가 들어갈 수 있어? case Variable: 같은거 ㅇㅅㅇ
L 아니
안 되는것 같네 const_expression이니까 ㅇㅅㅇ; 그것만 봐도 벌써 엄청 다르잖아 ㅇㅅㅇ
당연히 최적화를 잘 하는 컴파일러면 switch가 효율적이겠지 ㅇㅅㅇ... 적어도 최적화 할 껀덕지(const! const!)가 있으니까
근데 const 최적화는 if에도 마찬가지임
그냥 뱉을 수 있는 인스트럭션의 선택권이 많아지는거
앗 if에도 비교 대상을 const로 주면 되는구나 ㅇㅅㅇ....
어셈으로 해 그냥 - dc App
다만 비교 횟수를 최적화할 여지가 더 큰 쪽은 switch일 것 같다 ㅇㅅㅇ
근데 머하는 회사길래 이런 쓸데업는거 물어보는거에요
내비게이션 회사임 ㅇㅅㅇ
아 그럼 진짜로 필요한거 물어본거네요
스위치는 내부적으로 해쉬사용해서 빠름
해시 사용하면 문자열 같은것도 스위치문으로 쓸수 있음.