A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许飞翔 中级黑马   /  2012-3-11 13:45  /  2141 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Test
  2. {  
  3.     public static void main(String[] args)
  4.         {  
  5.         int i1 = 10;
  6.         int i2 = 10;  
  7.         System.out.println("i1 + i2 = " + i1 + i2);  
  8.         System.out.println("i1 - i2 = " + i1 - i2);  
  9.         System.out.println("i1 * i2 = " + i1 * i2);  
  10.         System.out.println("i1 / i2 = " + i1 / i2);  
  11.     }  
  12. }  
复制代码

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

6 个回复

正序浏览
+会被识别成连接符,所以会报错
回复 使用道具 举报
class Test
{  
    public static void main(String[] args)
        {  
        int i1 = 10;
        int i2 = 10;  
        System.out.println("i1 + i2 = " + i1 + i2);      +i1是变成字符串了,再加i2也没有问题,只是得不到你想要的结果,正解: System.out.println("i1 + i2 = " +( i1 + i2));      
        System.out.println("i1 - i2 = " + i1 - i2);     +i1变成了字符串了,然后又减上i2,问题来了,字符串与数字相减肯定会有问题,正解:
        System.out.println("i1 - i2 = " +( i1 - i2));
        System.out.println("i1 * i2 = " + i1 * i2);     可以这样写,由于*优先级高些,所以正确
        System.out.println("i1 / i2 = " + i1 / i2);     可以这样写,由于/优先级高些,所以正确

    }  
}  

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
楼上正解!
回复 使用道具 举报
应该这样写吧!
System.out.println("i1 + i2 = " +( i1 + i2));  
System.out.println("i1 - i2 = " +( i1 - i2));  
System.out.println("i1 * i2 = " + (i1 * i2));  
System.out.println("i1 / i2 = " + (i1 / i2));  

如果像你那样写,如("i1 * i2 = " + i1 * i2));  编译器运行到i1时就把i1 * i2 = " + i1的类型扩大到字符串了,因为这里的+号已经不是算术运算的加号了,而是字符串的连接,字符串是不能和i2相乘的。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
class Test {
        public static void main(String[] args) {
                int i1 = 10;
                int i2 = 10;
                System.out.println("i1 + i2 = " + (i1 + i2));
                System.out.println("i1 - i2 = " + (i1 - i2));
                System.out.println("i1 * i2 = " + i1 * i2);
                System.out.println("i1 / i2 = " + i1 / i2);
        }
}

这样编译就没有错误了,为+和-的运算符优先级是一样的,你写上"i1 - i2 = " + i1 - i2肯定是不行的,因为编译器会认为:让字符传+一个数字变成了一个字符串这没有问题,然后再减去一个数字,那肯定就错误了。还有你输出的第一句,"i1 + i2 = " + i1 + i2输出结果是 :i1 + i2 = 1010;而并非i1 + i2 = 20。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
  1. class Test

  2. {  

  3.     public static void main(String[] args)

  4.        {  

  5.       int i1 = 10;

  6.         int i2 = 10;  

  7.        System.out.println("i1 + i2 = " + (i1 + i2));  

  8.        System.out.println("i1 - i2 = " + (i1 - i2));  

  9.       System.out.println("i1 * i2 = " + (i1 * i2));  

  10.        System.out.println("i1 / i2 = " + (i1 / i2));  

  11.   }  

  12. }  
  13. 你没加括号都变成字符串了,而—不能识别。所以要都要加上括号,
复制代码

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马