java大虾们,帮小弟解析一下疑惑

来源:百度知道 编辑:UC知道 时间:2024/09/24 06:57:47
下面一段JAVA代码:
public class CommaOperator{
public static void main(String[] args){
for(int i=1,j=i+10;i<5;i++,j=i*2){
System.out.println("i= "+i+" j= "+j);
}
}
}

提出问题如下:
为什么i一直执行初始化表达式?
而j却第一次执行初始化表达式,第二次开始则执行步进表达式??
我同学叫我理解什么叫作用域,我已经知道逗号运算符了.
主要问题是帮我解析为什么j的输出第一次进入执行初始化部分,第二次开始就是步进部分????????

楼主不懂for循环 i 只初始化一次

这个for循环的意思就是:i 从 1 开始,j 从 11 开始,大于等于 5 时循环结束,每次循环 i=i+1 , j=i*2

循环时向控制台输出 i= /*i的数值*/ j= /*j的数值*/

你那个语句就可以执行一次以为下次就不成立了

把这个拆成while好办了就
int i =1 ;
int j = i + 10;
while(i<5){
System.out.println(i= "+i+" j= "+)
++i;
j = i*2;
}
所以程序输出应该是
1 11
2 4
3 6
4 8

已阅 基本都对