if 문은 이것 아니면 저것이 되고,
switch문은 이것이거나, 저것이거나, 세번째의 것이거나.. 하는 방식이 되겠지요.. -ㅅ-a
2007.07.19 00:43:43 (*.201.226.173)
1ststory
원래 switch 자체가 if - else 문의 연속입니다.
if - else도 이것이거나 저것이거나 세번째 것이거나 하는 방식이 되죠.
2007.07.19 00:49:00 (*.11.89.52)
graytutor
흠.. 그렇다면 일단은 큰 상관 없겠군요..
그런데 네 번째 이후부터도 가능할까요?
제 지식 안에서는 가능할 것 같다.. 라고 생각하고는 있는데..
제가 프로그램쪽은 깊이가 없어서 말이죠.. -ㅅ-a
2007.07.19 00:51:54 (*.139.226.133)
유미르
if - else 문을 계속 반복해서 사용해도 상관 없습니다. 원하는 만큼 조건 넣는것도 물론 가능합죠.
2007.07.19 00:53:20 (*.11.89.52)
graytutor
그렇군요.. 그럼 이대로 해도 되겠군요..
답변해주신 모든 분들께 감사드립니다.. -ㅁ-a
2007.07.19 02:17:04 (*.85.37.56)
bard
if-else/switch-case 문도 좋지만... 충분히 많은 상태/동작을 만들어내기엔 역부족입니다.
FSM(Finite-State Machine/유한상태기계)에 관련된 문서를 구글사마에게 문의 해 보시면 새로운 세상이 열리실 껍니다.
잘 정의된 FSM은 if-else/switch-case 문을 거의 다 제거해내고, 하나의 테이블로 모든걸 충족시킬 수 있습니다.
외부 테이블을 이용한다면 궂이 복잡한 if-else/switch-case 문의 흐름을 바꿔대느라 머리를 싸매지 않고, 간단히 테이블의 값만 바꾸는 걸로도 원하는 바를 이룰 수 있게 됩니다.
자세한건 구글님에게 여쭤보세요 ^^;
2007.07.19 02:43:55 (*.11.89.52)
graytutor
오호.. 그런 것도 있군요.. -ㅅ-+
찾아보고 좀 더 노력해야겠군요.. -ㅁ-+
바드님에게도 감사를... -ㅁ-a
2007.07.19 08:52:39 (*.140.54.128)
히스
으음.. if문으론 가능한데
switch문으로 불가능하다고 해야 하나? 뭐 그런게 있었는데.;
비트 연산이였나.? 흐음.. 저도 정확히 기억이 잘 안나지만...
어떤분께서 switch문으로 사용하시다가 뭔가 안되서 if문으로 바꾼얘기를 들었어요.;
2007.07.19 10:00:03 (*.119.115.243)
1ststory
어차피 FSM도 switch문과 if-else문의 연속... emoticon_05
2007.07.19 10:13:51 (*.56.226.244)
moonhalo
히스// if 비교문에서는 변수나 수식 비교가 가능하지만,
switch 의 case 에는 상수만 들어갈 수 있는 걸 말씀하신 듯 하네요.
2007.07.19 10:35:32 (*.189.163.250)
윤원영
/1ststory 어차피 FSM도 switch문과 if-else문의 연속... <- 맞는 말씀입니다만;;; 부정하고 싶어져서
FSM을 함수포인터를 배열에 넣는다던가 해서 해당 state의 ID가 해당 함수포인터 배열의 인덱스가 된다던지 하는 구조로 해야하지 않을까 하는...
FSM을 if else로 구현하면 FSM의 장점을 살리지 못하고 그냥 if else쓰는 것에서 많이 개선되지 않을것 같은데
그런걸 FSM이라고 불러도 될지... 개인적인 사견입니다.
2007.07.19 11:31:40 (*.85.37.56)
bard
1ststory// FSM도 switch-case/if-else 문의 연속이지만, 그 switch-case/if-else의 연속을 없앨 수 있는 많은 방안이 존재하죠.
궂이 남들이 이미 해본 삽질을 또 할 필요는 없는거라 믿고 있습니다. ^^;
2007.07.19 13:43:27 (*.33.131.253)
니우
FSM을 사용하게 되면 switch나 if-else문으로 짜야진 프로그램 보다 가독성도 좋고.
그만큼 문서화하기도 쉬워지더군요.
2007.07.19 23:03:49 (*.109.109.87)
kallru
그냥 여담이지만....if -else로 3개 정도쯤 될때는 switch문이 속도가 좀 더 빠르죠 :D 그냥 달아보고 가는 (....);