2012-11-04 3 views
2

안녕하세요 '< ='에 잘못된 문자 상수가 있습니까? 이유가 무엇입니까?'<='잘못된 문자 상수

switch (ch) 
    { 
     case '+' : res = op1+op2;break; 
     case '-' : res = op1-op2;break; 
     case '*' : res = op1*op2;break; 
     case '/' : if (op2 != 0) 
        res = op1/op2; 
        else 
        System.out.println("Division by zero error in"+ 
        " PostfixEvaluator.calculate()."); 
        break; 
     case '%' : if (op2 != 0) 
        res = op1%op2; 
        else 
        System.out.println("Division by zero error in"+ 
        " PostfixEvaluator.calculate()."); 
        break; 
     /** 
     * Alterations begin here 
     */ 
     case '<' : if(op1 < op2) 
        res = 1; 
        else 
        res = 0; 
        break; 
     case '<=' : if(op1 <= op2) 
        res = 1; 
        else 
        res = 2; 
        break; 
     case '>' : if(op1 > op2) 
        res = 1; 
        else 
        res = 2; 
        break; 
     case '>=' : if(op1 >= op2) 
        res = 1; 
        else 
        res = 2; 
        break; 
     case '==' : if(op1 == op2) 
        res = 1; 
        else 
        res = 2; 
        break; 
     case '!=' : if(op1 != op2) 
        res = 1; 
        else 
        res = 2; 
        break; 

     case '||' : if(true || false) 
         res = 1; 
        else if(false || true) 
         res = 1; 
        else if(false || false) 
         res = 0; 
        else 
         res = 1; 
        break; 
     case '&&' : if(true && false) 
         res = 0; 
        else if(false && true) 
         res = 0; 
        else if(false && false) 
         res = 0; 
        else 
         res = 1; 
        break; 
+5

이기 때문에? 그 말이 무슨 뜻인지 아십니까? 사전에 말했는지 해봤습니까? –

+0

선장님 분명히 감사합니다. 귀하의 도움을 감사하지만 무례한 내 문제를 해결하지 않습니다. – maker1

+1

한 문자로 구성되어 있기 때문에 문자 상수라고합니다. –

답변

8

자바에서 문자가 작동하지 않습니다 단일 문자 (말하자면), 그래서 '<=', '&&' 등이다. 두 개 이상의 문자를 입력해야하는 경우 큰 따옴표가있는 String : "<="을 사용해야합니다.

그러나 Java에서는 String 값을 으로 전환 할 수 없습니다. Java 7 이상을 사용하고 있지 않은 경우입니다. 그 경우가 아니라면 비교를 수행하기 위해 평범한 이전 if-else if 문을 사용해야합니다. 그들은 두 문자가 있기 때문에 당신이, 상수 문자로 && 또는 ||을 사용할 수 없습니다

+0

오른쪽. String 값을 시도했습니다. 작동하지 않았다. 또한 자바 7+를 사용하지 않고도 스위치를 켤 수 없다는 것도 알게되었습니다. 고맙습니다. 내가 해결할 또 다른 방법을 찾을 것이다 – maker1

+0

@ user1797439'String's는 객체이므로'=='이 아닌's1.equals (s2)'를 사용해야합니다. – Kevin

+0

어떤 문자열을 언급하고 있습니까? 나는 문자열을 비교하는 방법을 안다. 그러나 나는 코드를 비교할 문자열이 없다는 것을 알았다. – maker1

3

문자 상수는 정확히 하나 개의 문자 * 나타해야합니다.

문자를 사용하는 경우 일반적인 해결 방법은 |을 사용하고 이전 문자를 확인하여 | 또는 &인지 확인하는 것입니다.


* \n과 같은 이스케이프 시퀀스는 두 문자로 구성 되더라도 단일 문자를 나타냅니다.

+0

그럼 문자 상수를 사용하지 않고 케이스를 사용할 수있는 방법이 있습니까? – maker1

+0

문자 상수는 반드시 하나의 문자로 평가해야한다고 말하는 것이 더 정확할 것이라고 생각합니다. ''\ n ''은 Java에서 유효합니다, 그렇지 않습니까? –

+0

Java에 양방향 또는 3 중 그래프가 없습니다. – Kevin