三角数 Java

triangular Numbers Java

问题是相同结果(三角数)有两种代码

1.

           for (int i = 1; i <= 10; i++) {
            int triangular = 0;

            for (int j = 1; j <= i; j++) {
                triangular = triangular + j;
            }
            System.out.println(i + " = " + triangular);

2.

int x =1; 
int triangular = 1;

while(x<=10){


System.out.println(x+ "=" +triangular);
 x++;
triangular= triangular+x;

}

为什么 (1) "int triangualr" 是 0 而 (2) 是 1 ???不明白

因为在第二个代码中 "triangular" 首先打印了 value=1 而在第一个代码中,"triangular" 首先增加(从 0 到 1),然后打印 value=1.

所以在这两种情况下,您首先看到的是三角形=1。

在方法1中,每次在for循环中初始化int triangular。嵌套 for 循环正在计算三角形的值,然后打印值

       for (int i = 1; i <= 10; i++) {
            int triangular = 0;

            for (int j = 1; j <= i; j++) {
                triangular = triangular + j;
            }
            System.out.println(i + " = " + triangular);
       }

但是在方法2中,在while循环的第一行打印x=1的值,然后递增x的值

int x =1; 
int triangular = 1;
while(x<=10){
    System.out.println(x+ "=" +triangular);
    x++;
    triangular= triangular+x;
}

所以在第一种方法中,三角形的值是从 1 开始计算的,而在第二种方法中,三角形的值是在第一次迭代中不计算的