[英]How does this formula work in java?
我正在尝试解决这个问题,但是双重打印22是怎么回事? 另外,在for循环后分号到底要做什么? 我将假定最终结果是由于此。
public class termdeposit
{
int sum;
public termdeposit()
{
sum = 1;
}
public void test()
{
int sum = 1;
for (int i = 0; i <= 4; i++); {
sum = sum + 1;
}
System.out.println ("The result is: " + sum);
System.out.println("Double result: "+ sum+sum);
}
}
分号结束(无用的)循环语句,花括号开始一个不相关的代码块。 您的代码与此等效:
for (int i = 0; i <= 4; i++) {
// do nothing
}
// run once:
sum = sum + 1;
您的打印语句打印22
因为sum+sum
在上一个+
的上下文中被解释为字符串连接,并且由于sum
现在为2
,所以它打印"2"
和"2"
。
我假设您在解释程序行为方面遇到了挑战。 这是一个技巧问题。 如您所知,分号非常重要。 这段代码:
for (int i = 0; i <= 4; i++); {
sum = sum + 1;
}
具有欺骗性。 适当缩进,将类似于:
for (int i = 0; i <= 4; i++)
; // do nothing
{
sum = sum + 1;
}
花括号创建一个代码块(可以在该块中声明局部变量)。 在这种情况下,其效果与sum = sum + 1;
完全相同sum = sum + 1;
被写在大括号外面。
您应该能够从中找出其余的行为以及以下事实:在最后一个打印语句中, +
运算符从左到右关联。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.