class A{
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=1j=11
i=2j=4
i=3j=6
i=4j=8
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=1j=11
i=2j=4
i=3j=6
i=4j=8
{
public static void main(String args[])
{
for(int i=1;i<5;)
{
j=i+10;
System.out.println("i="+i+"j="+j);
i++;
j=i*2;
}
}
}
写成这样你就明白啦吧
先exp1初始化,再执行exp2判断,true的话就执行exp4;再执行exp3,然后再exp2判断...
exp1只执行一次,然后是exp2->exp4->exp3->exp2循环执行,直到exp2为false推出
System.out.println("i="+i+"j="+j);
}
变成如下形式:
int j=0;
for(int i=1;i<5;i++){
if(i==1) {
j=i+10;
} else {
j=i*2;
}
System.out.println("i="+i+"\t"+"j="+j);
}
修改后的程序:
class A{ public static void main(String args[]){
int j=0;
for(int i=1;i<5;i++){
if(i==1) {
j=i+10;
} else {
j=i*2;
}
System.out.println("i="+i+"\t"+"j="+j);
} }
}
结果:
i=1 j=11
i=2 j=4
i=3 j=6
i=4 j=8
Press any key to continue...
结果说明:
在for(int i=1,j=i+10;i<5;i++,j=i*2)首先定义了两个变量i=1和j=11;所以第一次打印出来结果是i=1 j=11;打印完后,i=2;j=4,然后程序再次循环,递增i的值,并且在打印输出i和j的值后,执行i++和j=i*2,所以结果就是这个样子的,至于楼上的两位,结果是不正确的,如果不相信你们可以运行一下看看,结果应该是i=1 j=11
i=2 j=12
i=3 j=13
i=4 j=14
楼主对 for(exp1;exp2;exp3){exp4;}的执行顺序没弄清楚啊
先exp1初始化,再执行exp2判断,true的话就执行exp4;再执行exp3,然后再exp2判断...
exp1只执行一次,然后是exp2->exp4->exp3->exp2循环执行,直到exp2为false推出
==============
正解!简单明了
{
public static void main(String args[])
{
int i=1,j=i+10;
//等价于如下两行语句:
//int i=1;
//int j=i+10;
for(;i<5;)
{
System.out.println("i="+i+"j="+j);
i++;
j=i*2;
}
}
}
楼主对 for(exp1;exp2;exp3){exp4;}的执行顺序没弄清楚啊
先exp1初始化,再执行exp2判断,true的话就执行exp4;再执行exp3,然后再exp2判断...
exp1只执行一次,然后是exp2->exp4->exp3->exp2循环执行,直到exp2为false推出
********************************************************************
先exp1初始化,再执行exp2判断,true的话就执行exp4;再执行exp3,然后再exp2判断...
exp1只执行一次,然后是exp2->exp4->exp3->exp2循环执行,直到exp2为false推出
好好再看看初始值,的定义吧
楼主对 for(exp1;exp2;exp3){exp4;}的执行顺序没弄清楚啊
先exp1初始化,再执行exp2判断,true的话就执行exp4;再执行exp3,然后再exp2判断...
exp1只执行一次,然后是exp2->exp4->exp3->exp2循环执行,直到exp2为false推出的意思了~~
for(exp1;exp2;exp3){exp4;}的执行顺序没弄清楚啊先exp1初始化,再执行执行exp4;再exp2判断...,true的话执行exp3
exp1只执行一次,然后是exp4->exp2->exp3->exp4->exp2循环执行,直到exp2为false推出
这样吧~~
for(exp1;exp2;exp3){exp4;}的执行顺序没弄清楚啊先exp1初始化,再执行执行exp4;再exp2判断...,true的话执行exp3
exp1只执行一次,然后是exp2->exp3->exp4->exp2循环执行,直到exp2为false推出
这样吧~~我写错了~
如果非得找出点问题的话。。这个呵呵
for(int i=1,j=i+10;i<5;i++,j=i*2){j=i*2是在每次循环结束后执行的。。that is..