'< ='无效的字符常量

时间:2012-11-04 02:34:25

标签: java switch-statement invalid-characters

你好我在'< ='上收到一个错误,它是一个无效的字符常量? 有什么想法吗?

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;

2 个答案:

答案 0 :(得分:8)

Java中的字符是单个字母(可以这么说),因此'<=''&&'等不起作用。如果您需要放置多个字符,则必须使用String"<="注意双引号。

但是再一次,在Java中,除非使用Java 7+,否则无法打开String。如果不是这样,那么您将不得不使用普通的旧if-else if语句来执行比较。

答案 1 :(得分:3)

字符常量必须正好表示一个字符 * :您不能使用&&||作为字符常量,因为它们有两个字符。

如果逐个字符,常见的解决方案是使用单个|,然后检查前一个字符,看它是|还是&

<小时/> * 诸如\n之类的转义序列也表示单个字符,即使它们由两个字符组成。