本帖最后由 白昼那知夜的黑 于 2015-5-26 00:59 编辑
首先看看if语句成立时
- public static void main(String[] args) {
- int i;
- int j;
- for (i = 1; i <= 10; i++) {
- for (j = 2; j < i; j++) {
- if (i % j == 0) {
- System.out.println("If语句成立时:i=" + i + " j=" + j);
- break;
- }
- }
- if (j >= i) {
- // System.out.println(i);
- }
- }
- }
复制代码
输出结果为:
- If语句成立时:i=4 j=2
- If语句成立时:i=6 j=2
- If语句成立时:i=8 j=2
- If语句成立时:i=9 j=3
- If语句成立时:i=10 j=2
复制代码
所以i=5时,不会进if,那么看下面,看i=5时j等于多少
- public static void main(String[] args) {
- int i;
- int j;
- for (i = 1; i <= 10; i++) {
- for (j = 2; j < i; j++) {
- if (i % j == 0) {
- break;
- }
- if(i==5){
- System.out.println("i==5时j="+ j);
- }
- }
- if (j >= i) {
- // System.out.println(i);
- }
- }
- }
复制代码
输出结果为:
- i==5时j=2
- i==5时j=3
- i==5时j=4
复制代码
可见,i=5时,j最后为4
分析:当i=5开始第二个for循环时,
此时:2<5条件成立,打印一次:i==5时j=2
然后:j++,j=3,此时:3<5条件仍然成立,打印第二次,i==5时j=3
继续:j++,j=4,此时,4<5条件仍然成立,打印第三次,i==5时j=4
最后,j++,j=5,此时,5<5不成立,i=5循环结束
所有最后:i==5时j=4
深夜纯手工、只为进黑马、谢谢楼主,感谢版主! |