|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 JAVA论坛 』
→ 运算符优先级问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1797
人关注过本帖
标题:
运算符优先级问题
只看楼主
加入收藏
有多难
等 级:
论坛游民
帖 子:39
专家分:39
注 册:2018-3-26
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:10 回复次数:4
运算符优先级问题
public class test{
static{
int x=5;
}
static int x,y;
public static void main(String args[]){
x--;
myMethod( );
System.out.println(x+y+ ++x);
}
public static void myMethod( ){
y=x++ + ++x;
}
}
求输出结果和过程分析。
搜索更多相关主题的帖子:
运算符
优先级
public
static
void
2018-04-15 13:47
举报帖子
使用道具
赠送鲜花
有多难
等 级:
论坛游民
帖 子:39
专家分:39
注 册:2018-3-26
第
2
楼
收藏
得分:0
想了半天了,自己强行解释一波:
【在解释之前说明一下,把myMethod()方法中的算数表达式中的+号换成了-号后,方法结束后y的值为-2】
int型变量x、y没有手动赋初值,默认初始值都为0;
进入main方法,x--,所以x的值为-1;
调用myMethod方法x++先参与运算后自加1,所以此处参与运算的x值为-1,
然后x++,x值变成0,然后++x,先自加1后参与运算,所以后一个x值为1,所以最终的y值为0;
然后回到main方法,x值为1,y值为0,++x值为2,最后输出结果为3.
[此贴子已经被作者于2018-4-15 21:40编辑过]
2018-04-15 21:39
举报帖子
使用道具
赠送鲜花
疯狂的小a
等 级:
贵宾
威 望:
39
帖 子:423
专家分:1871
注 册:2018-2-6
第
3
楼
收藏
得分:10
回复 2楼 有多难
你是不是还不会debug
假如人生没有梦想,和咸鱼有什么区别!
2018-04-16 21:14
举报帖子
使用道具
赠送鲜花
有多难
等 级:
论坛游民
帖 子:39
专家分:39
注 册:2018-3-26
第
4
楼
收藏
得分:0
回复 3楼 疯狂的小a
会了 大佬 基础比较薄弱 正在不断进步中 。话说我自己上面的分析有毛病吗?
2018-04-18 22:38
举报帖子
使用道具
赠送鲜花
a351021817
等 级:
论坛游侠
威 望:
6
帖 子:23
专家分:174
注 册:2018-4-26
第
5
楼
收藏
得分:0
i++是先进算数表达式运算,再i自加1;
++i是i先自加1后的结果覆盖掉i原先的值,然后i再参与算数表达式运算。在实际开发中很少用那么奇怪表达式,一般面试题居多,什么i++ + i + ++i之类的脑残代码,不过也是为了考察你的基础是不是扎实;
此外,这个静态代码块写得没有实际意义,只是徒劳占用内存而已,你这个代码是面试题里面的吧,这个是个迷惑代码。
static{
int x=5;
}
静态代码块在class文件编译后,就写入字节文件中了,一般会一直存在内存地址中的。
2018-04-26 01:28
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
运算符优先级问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016958 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved