关于for循环有花括号和无花括号的逻辑执行的区别
题目
此程序最终执行结果sum的值是多少?
public class Test { void Test(){ int k =3,sum = 0,x; for (int i = 1;i<=k;i++){ x = 1; for (int j = 1; j <= i; j++) x = x * j; sum += x; } System.out.println(sum); } public static void main(String[] args) { Test t = new Test(); t.Test(); } }
结果是9。
程序运行逻辑
给程序打断点,可以看到分步结果如下:
i = 1: j =1,x = 1,sum = 1; i = 2: j = 1,x = 1; j = 2,x = 2,sum = 3; i = 3:j = 1,x = 1; j = 2,x = 2; j = 3,x = 6,sum = 9;
从上面断点查看的执行逻辑可以看出,程序第二个for在没有带{ }的时候,只会执行其循环里面第一行。只有当即将跳出循环才会执行其他语句,否则只执行一行语句。
OK,这个我确实时第一次知道,在这里记录下。
上一篇:
IDEA上Java项目控制台中文乱码