2013-01-23 3 views
-6

문자 등급을 취하여 해당 GPA를 반환하는 switch 문이 있습니다. 그러나 문자 (A, B, C, D & F)에 대해 찾을 수없는 기호 오류가 발생합니다! 지침에 대한 javaDocs를 확인했지만 잘못된 것을 찾을 수 없습니다. 이 오류의 원인은 무엇입니까?Switch 문 (문자)

switch (grade) { 
     case A: nv[i] = 4; //nv = numerical value 
       break; 
     case B: nv[i] = 3; 
       break; 
     case C: nv[i] = 2; 
       break; 
     case D: nv[i] = 1; 
       break; 
     case F: nv[i] = 0; 
       break; 
    } 
+0

질문이 없습니다 ... –

+0

내 질문을 수정했습니다. 죄송합니다! – InspiringProgramming

답변

10

A은 유효한 문자 리터럴 ('A')이 아닙니다.

그래서 당신이 원하는 : 당신은 또한 아마 성적이 그 중 하나가 아닌 경우에 대한 기본 케이스가 있어야

switch (grade) { 
    case 'A': nv[i] = 4; //nv = numerical value 
      break; 
    case 'B': nv[i] = 3; 
      break; 
    case 'C': nv[i] = 2; 
      break; 
    case 'D': nv[i] = 1; 
      break; 
    case 'F': nv[i] = 0; 
      break; 
} 

. nv[i] 존재에 대한 검사와 함께

nv[i] = "FDCBA".indexOf(grade); 

-1 이후 (등급은 해당 세트에없는 것을 의미) :

아, 그리고 코드도 같이 쓸 수 있습니다.

+1

그래서 빨리 질문을했습니다 :) –

+0

-1이라는 'nv [i]'를 확인하는 방법을 모르겠습니까? 그게 무슨 뜻 이니? – InspiringProgramming

+0

@InspiringProgramming : 제 간단한 접근 방식에서,'grade'가 발견되지 않으면'indexOf'가 -1을 반환한다는 것을 의미합니다. 그래서'nv [i]'는 -1이됩니다. 그래서 그것을 발견하기 위해서'if (nv [i] == -1) {...}' –