switch문에서 문자열 인식

frost917의 이미지

제가 switch문을 이용해 한글을 인식시켜서 구별할려고 합니다 하지만 의식의 흐름대로
switch(sel)
{
case 네:
~

case 아니요:
~
default:
~
}
하니깐 안되서 이렇게 하고싶으면 어떻게 해야하나요

 의 이미지

무슨 언어를 쓰고 계신 건지 모르겠군요.

Java라면, Java 7부터는 switch case에 문자열을 사용하는 것이 가능합니다:
http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html

그렇다면 이런 코드를 짤 수 있을지도 모르죠.

switch(sel)
{
    case "네":
    // ~
    case "아니요":
    // ~
    default:
}

C/C++에서는 얘기가 좀 다릅니다. C언어에서 case 뒤에 들어가는 표현식은 반드시 정수 상수여야 합니다. C++에서는 규정이 좀 복잡한데, 대충 언급하자면 어쨌든 상수여야 하고 정수형이거나 열거형 타입이어야 하죠. 다 설명하기 귀찮아서 대충 생략했습니다만 어쨌든 문자열 리터럴은 안 됩니다.

정 하고 싶으면 C언어에서는 아래와 같이 할 수는 있겠습니다. #include <string.h>가 선행되어야 합니다.

if(!strcmp(sel, "네")){
    // ~
}
else if(!strcmp(sel, "아니요")){
    // ~
}
else{
    // ~
}

C++에서는 selstring 타입이라는 가정 하에 더 직관적으로 짤 수도 있습니다.

if(sel == "네"){
    // ~
}
else if(sel == "아니요"){
    // ~
}
else{
    // ~
}

덧. 의식의 흐름대로 프로그램을 작성하는 건 별로 좋지 않은 습관입니다. 소설이나 시를 쓸 때라면 모르겠지만요.

frost917의 이미지

어떤 언어인지 적는걸 깜빡했군요...답변하고 조언 감사합니다!