黑马程序员技术交流社区
标题:
疑问:这程序是怎么运算的阿 晕了 求解答
[打印本页]
作者:
Freedom
时间:
2012-8-4 14:14
标题:
疑问:这程序是怎么运算的阿 晕了 求解答
public static void main(String[] args) {
int a = 1;
System.out.println( a+=2+ a++ + ++a );
作者:
林康春
时间:
2012-8-4 14:17
本帖最后由 林康春 于 2012-8-4 14:19 编辑
a+=2+ a++ + ++a
a =(a+2)+(a++)+(++a)这时候a 的值是1
a=3+(a++)+(++a) 这时候a 的值是1
a =4+(++a) 这时候a 的值是2
a=4+3 这时候a的值是3
a=7
你这个问题都是基础的知识,注意运算顺序
发个运算
优先级的图给你
[size=111%]l
图片1.png
(63.31 KB, 下载次数: 25)
下载附件
2012-8-4 14:19 上传
作者:
黑马李文
时间:
2012-8-4 14:26
本帖最后由 黑马李文 于 2012-8-4 14:30 编辑
就是左边加右边在赋值给左边~ 其中a+=2+ a++ + ++a 可以写成这样给你看看 a =(a+2)+(a++)+(++a) 运行结果为7 还有就是这么一小段程序你错误很多~~应该这样写~
class demo1
{
public static void main(String[] args)
{
int a = 1;
System.out.println(a+=2+(a++)+(++a));
}
}
复制代码
作者:
黑马振鹏
时间:
2012-8-4 14:27
System.out.println( a+=(2+ (a++) + (++a) ));
作者:
尤洋
时间:
2012-8-4 16:00
本帖最后由 尤洋 于 2012-8-4 16:02 编辑
给你讲细致一点,点开看大图。
小联系.png
(30.4 KB, 下载次数: 57)
下载附件
2012-8-4 15:59 上传
作者:
宫明星
时间:
2012-8-4 18:31
a+=2+ a++ + ++a
+号移到右边就是a+=a+2+(a++)+(++a)
a=1,a+2=3,a++是后置运算,先参加运算,再自增。
++a是前置运算,先自增,再参加运算。
所以a++此时是1,++a此时是2
a=a+2+(a++)+(++a)
=3+(a++)+(++a)
=4+(++a) 这时候a++生效,a此时是2了,++a这时候就是3
=4+3
=7
public static void main(String[] args)
{
int a = 1;
System.out.println(a+=2+(a++)+(++a));
}
结果是7
写的有点乱,汗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2