java - 为什么 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
?谢谢!
解决方案
这是因为您正在打印表达式的结果measure + '"'
。目前,您正在执行 adouble
和 a之间的加法char
。如果您改为使用"
而不是'
它将起作用。
像这样:System.out.println(measure + "\"");
另一种选择是首先转换measure
为字符串。这很少是最好的选择,但这里的全部要点是您需要知道操作数的类型以及操作的结果类型。double
a和 a之间的加法char
将导致 a double
。a double
(或int
或char
其他)和 a之间的加法String
将导致 a String
。
推荐阅读
- ruby-on-rails - 您可以在从属::nullify 回调期间使用多个外键使 has_many、belongs_to 上的外键无效吗?
- kotlin - Kotlin 等效于联合类型上的一些 F# 代码匹配
- gem5 - gem5的Gshare分支预测器
- sql - SQL GROUP BY 对多列花费的时间太长
- python-3.x - Apache Beam / Dataflow pub/sub 端输入与 python
- python - 如何修复 ModuleNotFoundError:没有名为“parts”的模块
- python - 打印 SQL 字符串作为游标对象的参数
- spring-boot - Heroku 上的 Spring Boot Cloud Native Buildpacks?
- javascript - 从 javaScript 将参数传递给 PHP 脚本
- javascript - 如何将返回值传递给 Reactjs 中的 useEffect?