공지사항 / Notices

헐... 많은 학생들이 읽은 token을 if then else를 쭉 나열하여 처리하고 있는데요,

by prof, 11월 5일, 15:16

헐... 많은 학생들이 읽은 token을 if then else를 쭉 나열하여 처리하고 있는데요,

그렇게 하면 안됩니다. 이건 기본 중의 기본입니다. 기본 기본 기본....

입력에서 특정 token을 읽고 이것이 무엇인지 판단해서 각각 다르게

처리해야하는 작업은 가장 흔하게 만나는 과정입니다. 그런데 이걸 if-then-else로

쭉 나열하여 처리하면 CS 전공자라고 볼 수 없습니다.

첨부한 code를 참고해서 앞으로는 꼭 이렇게 하세요.

- 일단 간결합니다.

- 확장이 쉽습니다.

- 결코 중간에 error가 나지 않으며 나더라도 금방 찝어 낼 수 있습니다.

Genome 만점 받은 학생이 알려준 방식으로 다시 고쳐 내봅세요.

이건 손으로 지가, 직접 해봐야 됩니다.

----------------------
#include <bits/stdc++.h>
using namespace std;

vector <string> mytoken ={ "front", "cut", "double", "report" , "back" } ;

int get_type( string w ){
for(int i=0; i < mytoken.size(); i++) {
if( w == mytoken[i] ) return(i) ;
}
return(-1) ; // 없는 경우
}

int main() {
string myword ;
int mytype ;

cout << "token을 함 쳐보시오: " ;
cin >> myword ;
mytype = get_type( myword ) ;

switch( mytype ) {
case 0: cout << "front가 입력" ; break;
case 1: cout << "cut이 입력" ; break;
case 2: cout << "double이 입력" ; break;
case 3: cout << "report가 입력" ; break;
case 4: cout << "back이 입력" ; break;
case -1: cout << "이 뭐꼬 ? " ; break;
default: cout << "이건 아닌데..." ;
}
return 0 ;
} // end of main() by Zoh Q.