这个公式如何在java中运行?

时间:2016-06-07 02:51:31

标签: 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);
}
}

2 个答案:

答案 0 :(得分:4)

分号结束(无用的)循环语句,花括号开始一个不相关的代码块。您的代码等同于:

for (int i = 0; i <= 4; i++) {
    // do nothing
}
// run once:
sum = sum + 1;

您的print语句打印22,因为sum+sum在前一个+的上下文中被解释为字符串连接,并且sum现在是2,它会打印"2""2"

答案 1 :(得分:0)

我假设你被要求解释程序行为。这是一个棘手的问题。你似乎意识到,分号非常重要。这段代码:

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;完全相同的效果。

你应该能够从中找出其余的行为,再加上在最后一个打印语句中,+运算符从左到右关联。