
Java循环语句的问题。
publicstaticvoidmain(String[]args){for(inti=0;i<6;i++){intk=++i;while(k<5){System.out...
public static void main(String[] args) {
for (int i = 0; i < 6; i++) {
int k = ++i;
while (k < 5) {
System.out.print(i);
break;
}
}
}
为什么答案显示的是13? 不是0 1 2 3 展开
for (int i = 0; i < 6; i++) {
int k = ++i;
while (k < 5) {
System.out.print(i);
break;
}
}
}
为什么答案显示的是13? 不是0 1 2 3 展开
8个回答
展开全部
第一次循环时 i = 0 执行int k = ++i; 这句代码后i=1,k=1;所以第一次打印的i = 1;
当二次循环时,因为前一次循环后,i = 1了 再执行循环条件i++后,i变成2了,最后再执行
int k = ++i; i就等于3了,k也变成3了,此时打印的i当然是3;
当3次循环时,因为前一次循环后,i = 3了 再执行循环条件i++后,i变成4了,最后再执行
int k = ++i; i就等于5了,k也变成5了,此时不打印
当二次循环时,因为前一次循环后,i = 1了 再执行循环条件i++后,i变成2了,最后再执行
int k = ++i; i就等于3了,k也变成3了,此时打印的i当然是3;
当3次循环时,因为前一次循环后,i = 3了 再执行循环条件i++后,i变成4了,最后再执行
int k = ++i; i就等于5了,k也变成5了,此时不打印
展开全部
你没加后面那语句之前,由于第一次for循环i=0,所以第一个system输出就是0;
当你加了后面的输出后,由于中间while语句使得i不断增加,直到等于5退出while循环,这时候的i=5,所以第二个输出就是5
所以输出了0
5
当你加了后面的输出后,由于中间while语句使得i不断增加,直到等于5退出while循环,这时候的i=5,所以第二个输出就是5
所以输出了0
5
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
k=++i;
i先加1 在赋值给k;此时k=1;i也变成了1
所以第一次执行循环体时 k=1
符合条件k<5 输出i值 1
进入第二次循环,i++,i值原为1再+1 =2
k=++i, 所有k=3; 并且i=3;
符合条件k<5 输出i值 3
进入第三次循环
先i++,即i=3+1=4
k=++i=5,i=5;
不满足k<5 不输出
继续进入for循环,i++=5+1=6 不满足i<6 所有不执行循环体,结束for循环
故结果为13 (输出没有空格也没有换行,其实是1、3)
要结果输出为0、1、2、3的话,把k=++i;改成k=i+1;
i先加1 在赋值给k;此时k=1;i也变成了1
所以第一次执行循环体时 k=1
符合条件k<5 输出i值 1
进入第二次循环,i++,i值原为1再+1 =2
k=++i, 所有k=3; 并且i=3;
符合条件k<5 输出i值 3
进入第三次循环
先i++,即i=3+1=4
k=++i=5,i=5;
不满足k<5 不输出
继续进入for循环,i++=5+1=6 不满足i<6 所有不执行循环体,结束for循环
故结果为13 (输出没有空格也没有换行,其实是1、3)
要结果输出为0、1、2、3的话,把k=++i;改成k=i+1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为lastmoney=firstmoney-(0.6*c);和 lastmoney=firstmoney-(0.6*d);都是赋值语句,每次循环时lastmoney都是一样的值,由于c和d都是10,所以每次的值都是50-6即为44了,最后打印就为44
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-09-11
展开全部
因为 当执行 int k = ++i; 的时候 i已经等于 1 在执行 for循环后的 i++; i = 2 在执行 int k = ++i; 的时候 i = 3 了 所以显示的是 1 3 当在执行 在执行 for循环后的 i++; i = 4 在执行 int k = ++i; 的时候 i = 5 了 不满足 while的条件、所以没有后面的 5 了、、、、
public static void main(String[] args) {
for (int i = 0; i < 6; i++) {
int k = i;
while (k < 5) {
System.out.print(i);
break;
}
}
}
这样就是显示 0 1 2 3 4 了
public static void main(String[] args) {
for (int i = 0; i < 6; i++) {
int k = i;
while (k < 5) {
System.out.print(i);
break;
}
}
}
这样就是显示 0 1 2 3 4 了
追问
我看了一下。是因为我没有加区分符号。System.out.print(i+" ");这个改完之后,显示的是 1 和3
追答
那肯定啊、我上面也写了 显示的是 1 3 后面还有5 只是没有满足 while 条件所以没有进入方法里面 没有执行这句话 System.out.print(i+" "); 所以就 只显示出来了 1 3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询