一个循环的问题 int[] a={1,2,3,4,5}for(int count = 0; count<5;count++){ System.out.print(a[count++]);}这个程序的输出结果是135,我想问一下在循环中count++的值是怎么赋的啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.out.print(a[0]); System.out.print(a[2]); System.out.print(a[4]); 使用后再自加 count先传给a做下标,再加一,++count相反。 public class Count { public static void main(String[] args) { int[] a={1,2,3,4,5}; for(int count = 0; count <5;count++){ System.out.print(a[count++] + " "); } }} 每运行完循环体就立即执行count++,相当于count=count+1; count++的问题,先加和后加有很大区别 count++ 在作为单独的语句使用时没什么,但在结合别的语句比如str[count++]或str[++count]时先加再用和先用再加的区别很大,建议自己写些简单的代码测试测试~ 打印语句每次输出之后 数组下标count=count+1,然后for循环中的count=count+1; 肯定是135啊,你每次循环count加了两次啊 和count先后没关系.你for里加了一次.然后count++又加了一次 for(int count = 0; count <5;count++){ System.out.print(a[count++]); } //第一次count =0,打印a[0],然后 count+1,循环中又count+1,这时count = 2,打印a[2]... 提醒过很多人了,不要这样用++。你完全可以抛弃++这个操作符,因为其唯一确定的是为变量自增1,但是何时自增完全没有规范来约束。因此在这里是这种表现,换个jvm可能就是其他的表现。 首先判断count值是否少于5,如果是,则count++,你要把输出那里的count++看成a,即,判断时就判断a是否少于5,如少于则a++。 public static void main(java.lang.String[] args); 0 iconst_5 1 newarray int [10] 3 dup 4 iconst_0 5 iconst_1 6 iastore 7 dup 8 iconst_1 9 iconst_2 10 iastore 11 dup 12 iconst_2 13 iconst_3 14 iastore 15 dup 16 iconst_3 17 iconst_4 18 iastore 19 dup 20 iconst_4 21 iconst_5 22 iastore 23 astore_1 [a] 24 iconst_0 25 istore_2 [count] 26 goto 44 29 getstatic java.lang.System.out : java.io.PrintStream [16] 32 aload_1 [a] 33 iload_2 [count] 34 iinc 2 1 [count] 37 iaload 38 invokevirtual java.io.PrintStream.print(int) : void [22] 41 iinc 2 1 [count] 44 iload_2 [count] 45 iconst_5 46 if_icmplt 29 49 return System.out.print(a[count++]); 在输出的时候先执行count++,在输出;然后在执行循环的时候再count++for(int count = 0; count <5;count++){ } 例子:int a=3;int b=4;System.out.print((a+b)>10?100:200); 其实在运行的时候直接判断的是7>10 不? 怎么总有人找一些非常奇怪的自编问题,这种问题在编程时会遇到?你不会再循环中写上count+=2不就是你想加2的解决方案吗,总是想把问题复杂化 y=count++ 第一次执行 count=0 输出 a[0]=1 y=1 条件中count再+1 -->count=2第二次执行 count=2 输出 a[2]=3 y=3 条件中count再+1 -->count=4第三次执行 count=4 输出 a[4]=5 y=5 条件中count再+1 -->count=6 for循环结束 y=count++ 第一次执行 count=0 输出 a[0]=1 y=1 条件中count再+1 -->count=2 第二次执行 count=2 输出 a[2]=3 y=3 条件中count再+1 -->count=4 第三次执行 count=4 输出 a[4]=5 y=5 条件中count再+1 -->count=6 for循环结束 我靠,我还琢磨呢,怎么能出现135呢,后来才想起来是'1''3''5'这个就是先输出count的值,然后执行++就是+1了,你相当于执行2次嘛 int[] a={1,2,3,4,5} for(int count = 0; count <5;count++){ System.out.print(a[count]); count++;}和这同理。 每运行完循环体就立即执行count++,相当于count=count+1; 打印的是 024 的下标 内部类 编写一个刽子游戏,求各种答案,来强人 新建了个JAVA交互群,欢迎大家加入,共同学习了 新手,跪求各位帮忙~~ 急求分层窗格JLayeredPane的问题 java 下如何调用 window 下的可执行程序 这个数组倒序输出为什么会有错误? 各位你们用 JAVA 做MRP软件用"存储过程"吗 ? 还是JDS的问题 菜鸟求助,一个关于jdk的问题 急呀,clob保存数据的问题 数组怎样随机排序,并把所有情况显示出来---
System.out.print(a[2]);
System.out.print(a[4]); 使用后再自加
public static void main(String[] args) {
int[] a={1,2,3,4,5}; for(int count = 0; count <5;count++){
System.out.print(a[count++] + " ");
}
}
}
System.out.print(a[count++]);
} //第一次count =0,打印a[0],然后 count+1,循环中又count+1,这时count = 2,打印a[2]...
public static void main(java.lang.String[] args);
0 iconst_5
1 newarray int [10]
3 dup
4 iconst_0
5 iconst_1
6 iastore
7 dup
8 iconst_1
9 iconst_2
10 iastore
11 dup
12 iconst_2
13 iconst_3
14 iastore
15 dup
16 iconst_3
17 iconst_4
18 iastore
19 dup
20 iconst_4
21 iconst_5
22 iastore
23 astore_1 [a]
24 iconst_0
25 istore_2 [count]
26 goto 44
29 getstatic java.lang.System.out : java.io.PrintStream [16]
32 aload_1 [a]
33 iload_2 [count]
34 iinc 2 1 [count]
37 iaload
38 invokevirtual java.io.PrintStream.print(int) : void [22]
41 iinc 2 1 [count]
44 iload_2 [count]
45 iconst_5
46 if_icmplt 29
49 return
在输出的时候先执行count++,在输出;然后在执行循环的时候再count++
for(int count = 0; count <5;count++){
} 例子:
int a=3;
int b=4;
System.out.print((a+b)>10?100:200);
其实在运行的时候直接判断的是7>10 不?
第一次执行 count=0 输出 a[0]=1 y=1 条件中count再+1 -->count=2
第二次执行 count=2 输出 a[2]=3 y=3 条件中count再+1 -->count=4
第三次执行 count=4 输出 a[4]=5 y=5 条件中count再+1 -->count=6 for循环结束
第一次执行 count=0 输出 a[0]=1 y=1 条件中count再+1 -->count=2
第二次执行 count=2 输出 a[2]=3 y=3 条件中count再+1 -->count=4
第三次执行 count=4 输出 a[4]=5 y=5 条件中count再+1 -->count=6 for循环结束
System.out.print(a[count]);
count++;
}
和这同理。
打印的是 024 的下标