以下是一个网友提出的一些关于加号什么时候为运算符,什么时候为连接字符的相关问题,下面是我的一些个人见解,发表个博文,初次发表,记录下自己的成长,不喜勿喷。
System.out.println("i+i="+i+i); 这个运算出来 i+i=66 为什么会出现66的情况
System.out.println(+i+i); 这个运算出来12
System.out.println(i+i); 这个运算出来也是12 第一个加号可有可无
System.out.println(i+"*"+i++"="+i*i);其中中间的 i++的原意是什么意思?我知道这个语句错误,又错在哪呢?
这样跟你说吧,+号可以有多种意思(1.表示运算符号,即加法运算符),(2.表示字符串连接符)。你这里主要的是这两个意
思。
字符串与+号后面连接的数字变量在一起,默认将后面的数字看成是字符串,将其连接起来形成另一个字符串。如果数字变量前面没有字符串则单独表示数字。
所以你的第一条输出语句就是表示字符串连接符,先将前面的"i+i="这字符串与第一个数字变量i连接起来,输出结果就是"i+i=6"这字符串,接着这个字符串在与第2个数字变量i连接起来,输出结果就是"i+i=66"了。
第二与第三条输出语句则是正常的加法运算,因为这里都没有涉及到字符串连接
第四条语句是错误的,我也不清楚你想要表达的具体意思,不过i++表示的意思则是自增1,++i也表示自增1,可以这样表示i++与++i等价于i=i+1;这个表达式。只不过如果放在表达式中就会会有两种不同的情况,一种是先自增后赋值,一种则是先赋值,后自增。单独使用都表示自增加1。
如下两种情况:
(1.)int i = 6; int j = i++;System.out.println("i的结果为:"+i);
System.out.println("输出j的结果为:"+j);
(2.)int i = 6; int j =++i;System.out.println("i的结果为:"+i);
System.out.println("输出j的结果为:"+j);
这两种情况输出i的结果都是7.但是j的结果就不一样了,第一种请况的j则输出的是6,表示这个数字变量i先把值赋值给j,然后在进行自增加1。第二种情况的j输出的是7,表示这个数字变量i先进行自增加1,再把得到的结果7赋值给j,因而加号放在表达式中位置不一样,输出的结果就有所不同。
给个总结给你吧,1.判断加号前面是否有字符串,如有字符串,则表示连接符,否则表示数学运算符。2.i++与++i的区别,都表示自增加1,加号放前,先自增后赋值,加号放后,先赋值后自增。
还有你的最后一句输出,应该想输出的意思是两个相同变量相乘输出结果在控制台上的显示信息吧,我帮你修改了下,结果为System.out.println(i+"*"+i+"="+i*i);
这是我的理解,希望可以帮助到你。