首页 > 解决方案 > 为什么 println(measure + '"'); 和 println(measure + '\"'); 添加到测量,同时使用单独的语句打印正确?

问题描述

为了在 Java 中测试自己,我编写了一个程序来显示 的内容double[] measurements,其中包含:{8.0, 7.7474, 7.4949, 7.7474, 8.0, 7.7474, 7.4949, 7.7474, 8.0}。一个简单的增强 for 循环和 aprintln()似乎工作正常,但是

for(double measure: measurements)
{
   System.out.println(measure + '"');
}

打印出 42、41.7474、41.4949 等。正好比 的值大 34 measure。将代码更改为

for(double measure: measurements)
{
    System.out.println(measure + '\"');
}

打印出 18,17.7474、17.4949 等。正好比正确值多 10。只有当println语句分成两行时才能正确打印:

System.out.print(measure);
System.out.println("\"");

为什么前两个例子增加了 的值measure?我对编程还很陌生,但在我看来它们都可以工作,因为 Java 使用撇号和引号来声明一个字符串。为什么将它分成两个语句可以正常工作,同时将两个语句添加到 的值measure?谢谢!

标签: javadouble-quotesapostrophe

解决方案


这是因为您正在打印表达式的结果measure + '"'。目前,您正在执行 adouble和 a之间的加法char。如果您改为使用"而不是'它将起作用。

像这样:System.out.println(measure + "\"");

另一种选择是首先转换measure为字符串。这很少是最好的选择,但这里的全部要点是您需要知道操作数的类型以及操作的结果类型。doublea和 a之间的加法char将导致 a double。a double(或intchar其他)和 a之间的加法String将导致 a String


推荐阅读