在println输出内部添加

时间:2017-07-11 10:33:55

标签: java

我正在阅读一些Java谜题并找到了这个

public class Elementary {
    public static void main(String[] args) {
        System.out.println(12345 + 5432l);
    }
}

它不应该打印66666,而是打印17777.有人可以解释一下吗?

5 个答案:

答案 0 :(得分:2)

public class Elementary {
public static void main(String[] args) {
    System.out.println(12345 + 5432l);
}
}

如果你仔细观察它的角色'l'(5432 l )而不是'1'

这意味着它是'long'类型值。

如果没有后缀,并且它是整数类型(例如5623),则假定它是int。如果它不是整数类型(例如3.14159),则假定它是双精度。

有特定的后缀为long(例如39832L),float(例如2.4f)和double(例如-7.832d)。 除了这些,我们需要输出数字。

如果您添加这两个数字(12345 + 5432),现在问题就出现了(17777)

答案 1 :(得分:1)

以下是答案的说明: -  1.如果您打印Button1.setTitle(data[0], for: .normal) Button2.setTitle(data[1], for: .normal) Button3.setTitle(data[2], for: .normal) 。  2.在您的情况下, 12345 + 5432 12345 +54321 = 66666

= 12345 +5432(这个数字是长的,前缀为l)l

= 12345(int)+5432(long)

=(长)12345 +5432

= 17777

更多说明请找到以下代码

l

答案 2 :(得分:0)

你现在的号码被称为char l。你必须写1号。 你看到差异l和1 <​​/ p>

答案 3 :(得分:0)

我认为,因为5432l中的最后一个不是数字&#39; 1&#39;但字母表&#39; l&#39;因此它只是被编译器跳过,导致添加12345和5432

答案 4 :(得分:0)

我同意上层答案。但也值得一提的是这个非常常见的错误,以及为什么以这种方式对代码编写表示高度赞赏:

System.out.println(12345 + 5432L);

L - 大写,更直观地显示变量的类型

相关问题