慕神248202
2018-07-17 23:07
for(int i=1; i<=100;i++) 循环 第二次 i应该等2了 与 int i=1 冲突吗? 第二次循环i值是否重新赋值为1了?
for循环语法中i=1只执行一次,设置循环初始值,之后i=2后就不会再执行for中的第一个,而是第二三个
int i=1;
1<100? true.
i++; i+1=2;
2<100?true .接着循环到false 退出循环
你所说的i=1会不会和 i=2有没冲突是不存在的
赋值语句只能在开始的时候执行一次,,第二次循环不会执行int i=1,所以不会冲突
不冲突,循环在早期C语言里是在循环结构外定义i,再在循环体里使用。而Java里将定义与初始化合并。在for(int i=0;i<100;i++)里,只有i++是反复执行的,i=0是初始条件,i<100是结束条件
不会冲突,放心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);
以上代码可以直接复制测试下哈
不冲突,int i=1,是定义了一个int型的i并给它初始化,初始化之后就正常使用了,每一次循环就i++,而且根据循环流程图也知道它的循环过程不会循环到第一步(也就是 i = 1)
Java入门第一季(IDEA工具)升级版
1165510 学习 · 17586 问题
相似问题