问题是对于相同结果(三角数)有两种类型的代码
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?愚人了解
答案 0 :(得分:0)
因为在第二个代码中,第一个“三角形”以值= 1打印 在第一个代码中,“三角形”首先增加(从0到1),然后以值= 1打印。
因此,在两种情况下,您首先看到的都是三角形= 1。
答案 1 :(得分:0)
在方法1中,每次在for循环内都初始化int三角。嵌套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中,x = 1的值打印在while循环的第一行中,然后x的值递增
int x =1;
int triangular = 1;
while(x<=10){
System.out.println(x+ "=" +triangular);
x++;
triangular= triangular+x;
}
因此,在第一种方法中,三角形的值从1开始计算,在第二种方法中,三角形的值不针对第一次迭代计算。