有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

println输出中的java添加

我在浏览一些java拼图时发现了这个

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

它不是应该打印66666,而是打印17777。有人能解释一下吗


共 (5) 个答案

  1. # 1 楼答案

    你现在的数字写为字符l。你必须写数字1。 你看到l和1的区别了吗

  2. # 2 楼答案

    我认为,由于5432l中的最后一个不是数字“1”,而是字母“l”,因此编译器会跳过它,并将12345与5432相加

  3. # 3 楼答案

    我同意上面的答案。但也值得一提的是,这是一个非常常见的错误,这也是为什么人们非常欣赏以这种方式编写代码的原因:

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

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

  4. # 4 楼答案

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

    如果你仔细观察它最后的字符“l”(5432l)而不是“1”

    这意味着它是“长”类型值

    如果没有后缀,且为整型(如5623),则假定为int。如果不是整型(如3.14159),则假定为double

    long(例如39832L)、float(例如2.4f)和double(例如-7.832d)有特定的后缀。 除此之外,我们还需要计算数字

    现在你们的问题是,若你们把这两个数字加起来(12345+5432),你们会得到(17777)

  5. # 5 楼答案

    以下是答案的说明:- 1.如果您打印12345 +54321 = 66666。 2.在您的情况下,它是12345+5432l

    =12345+5432(此数字的长度以前缀l表示)l

    =12345(内部)+5432(长)

    =(长)12345+5432

    =17777

    更多说明请查看下面的代码

            int i=12345;
            long j=5432l;
            int sum =  (i + j); //compilation issue
            long sum = (i + j); // no compilation 
            int sum = (int) (i + j); //Type cast works fine.