我是Java新手。当我通过下面的循环处理时,我想显示循环的计数器值增加1.当我保留下面的代码时,我得到的值就像用计数器值连接1一样。为什么System.out.println
使用连接而不是添加?
for (c = 0; c < Size; c++) {
System.out.println("here the problem " + c+1 + " Case");
}
答案 0 :(得分:2)
+
运算符对于连接和附加都是重载的,并且两个运算符具有相同的优先级,因此操作从左到右进行计算。
从左侧开始,遇到的第一个操作数是字符串"here the problem"
,因此操作员知道它应该执行连接。它继续将c
连接到该String,产生一个新的String。
因此,第二个+
正在对结果字符串和1
进行操作,因此它再次进行连接。
如果您想要专门控制操作的顺序,并在c + 1
之前评估"here the problem" + c
,那么您需要将操作括在括号中:
"here the problem " + (c + 1) + " Case"
答案 1 :(得分:1)
试试这个
for (c = 0; c < Size; c++) {
System.out.println("here the problem " + (c+1) + " Case");
}
因为这总是试图在字符串连接之前评估括号中的表达式
答案 2 :(得分:0)
这不是System.out.println如何工作的问题。 Java将您的语句视为连接。 因为当你使用+ with string时,其他变量将被视为字符串,而java将执行连接