public class wren4255 {
public static void main(String [] args) {
boolean a = true;
boolean b= true;
System.out.print("a==b"+a==b);
 }
 }           //编译不了 
 
class wren4255 {
    public static void main(String args[])
    {
        String a = "cc";
        String b = "cc";
        System.out.println("a==b"+a==b);
    }
}              //能编译

解决方案 »

  1.   

    System.out.print("a==b"+a==b);
    a,b是boolean类型不能跟字符串相加吧。
    a,b是字符串类型System.out.println("a==b"+a==b);
    是"a==bcc"与"cc"作比较
      

  2.   

    boolean a = true;
    boolean b= true;
    System.out.print("a==b"+a==b);
    boolean 类型的能够和String类型的相加吗?
    这个不能编译是正常现象.
      

  3.   

    想要便宜通过,这样写就可以:
    boolean a = true;
    boolean b= true;
    System.out.print("a==b"+(a==b));
      

  4.   


    System.out.print("a==b"+a==b);不管a和b是什么类型,这俩个程序都是String+boolean的形式,为什么一个可以编译,一个不行呢?
      

  5.   


    String+boolean是可以的吧,就像String+int型一样吧,经常用的呀
      

  6.   

    String+boolean刚试了,,可以。
    System.out.print("a==b"+a==b);
    a,b是boolean,"a==b"+a是返回字符串,b是boolean,
    String 跟boolean 不能作比较??、
      

  7.   

    嗯...是优先级的问题....
    第一个程序...
    没有()...他就变成..STRING型+BOOLEAN型了...
    String型和Boolean型能相加么?
    答案是不能....所以...出错了....
    而第二个程序...之所以能编译...是因为是string型+string型....
    所以是"a+bcc"和"cc"比较....得出的结果是false...
    虽然得能编译...但是得出的结果..不是你想要的结果吧..
      

  8.   

    第一个程序
    boolean 与 String 类型不兼容不能相加,把a==b用()括起来就行了。
    第二个程序
    都是Stirng 类的,就可以进行字符串的连接了。
      

  9.   

    System.out.print("a==b"+a==b);
    第一个不能编译不是优先级的问题
    String+a为String型的
    String型和Boolean型是不能比较的
    所以编译是不能通过的
    这个跟优先级没关系
      

  10.   

    恩,谢谢大家了,不过有些朋友好像和我一样哦!!编译不了的原因就是因为String型和Boolean型是不能比较