for(int i=1; i<=100;i++) 循环
for(int i=1; i<=100;i++) 循环 第二次 i应该等2了 与 int i=1 冲突吗? 第二次循环i值是否重新赋值为1了?
for(int i=1; i<=100;i++) 循环 第二次 i应该等2了 与 int i=1 冲突吗? 第二次循环i值是否重新赋值为1了?
2018-07-17
不会冲突,放心for循环程序执行的流程是当for(循环变量的初始化;循环条件;循环变量的变化){循环体/循环操作}和if语句类似,当遇到这个循环条件成立的时候执行循环操作,循环操作执行完成一次后程序再指向循环变量的变化如题,for(int i=1; i<=100;i++)当i<=100成立时直接往下执行循环操作,再执行i++,再判断循环条件是否仍然成立,成立->继续循环;简单可以理解为,将for(int i=1; i<=100;i++)里面的i++放入循环体也是一样的效果。同理循环变量的初始化也可以在for循环外面(for循环语句之前)初始化是一样的效果。
for 关键字后面括号中的三个表达式必须用 “;” 隔开,三个表达式都可以省略,但 “;” 不能省略。
* a. 省略“循环变量初始化”,可以在 for 语句之前由赋值语句进行变量初始化操作
* b. 省略“循环条件”,可能会造成循环将一直执行下去,也就是我们常说的“死循环”现象(在编程过程中要避免“死循环”的出现,因此,对于上面的代码可以在循环体中使用 break 强制跳出循环)
* c. 省略“循环变量变化”,可以在循环体中进行循环变量的变化
其中第三点说得很明白了
代码如下:
int s1=0;
for(i=1;i<=100;i++) {
s1+=i;
}
System.out.println("1到10求和的值s1="+s1);
int s2=0;
for(i=1;i<=100;) {
s2+=i;
i++;
}
System.out.println("1到10求和的值s2="+s2);
以上代码可以直接复制测试下哈
举报