java 基础

我哭了谁来疼 2012-10-30 03:03:45
int x=3;
public static void main(String[] args) {
int x=012;
System.out.println(x); \\这里输出的是10为什么 ?

}
...全文
190 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
joyscsnd 2012-10-30
  • 打赏
  • 举报
回复
数字前面+了0的,比如:012就是8进制等于10,06就是6。
012计算出10进制就是10了。
int x=012;是局部变量,会优先使用。
如果楼主要使输出结果为3,可以这样写:System.out.println(this.x);
那么结果就是3了
joyscsnd 2012-10-30
  • 打赏
  • 举报
回复
楼上正解
fsz521 2012-10-30
  • 打赏
  • 举报
回复
首先要确定x用的是哪个值,是main方法外的3还是main方法里的012?局部变量优先于全局变量,所以x的值为012。
Java中八进制的数以0开头,那么012就等于十进制的8*1+2*1=10。
wby13579 2012-10-30
  • 打赏
  • 举报
回复
常量。
wby13579 2012-10-30
  • 打赏
  • 举报
回复
012 -- 八进制的,正常情况下都不回这么定义int 变量的。
Flycutter 2012-10-30
  • 打赏
  • 举报
回复
因为这是8进制的数。。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧