问答详情
源自:4-9 Java循环语句之 for

为什么以下代码只输出4行"我看不见我看不见我看不见",输出不应该是8行代码吗?

public class Foryunsuan {
    public static void main(String[] args) {
        int i = 1;
        for(;i!=5&&i<10;){
            System.out.println("看不见看不见看不见");
            i++;
        }
    }
}


提问者:慕标2419699 2020-12-10 11:18

个回答

  • qq_慕移动6310289
    2020-12-10 17:08:15

    我认为这要分两个步骤分析:

    1. 比较运算符“!=” 是在(i = 5;i != 5)时输出结果false。for循环中最后一步执行i++,i++是先赋值在+1在执行第四个循环的时候i的值为5,第五个循环开始时进入比较运算符的判断即(i = 5;i ! = 5)此时输出结果为false。

    2. 逻辑运算符中“&&”有”短路“现象,即如果左边运算结果为false时,则系统就认为已经没有必要执行右侧了。此代码中当比较运算符“!=”判断结果为false时即(i = 5;i != 5)时满足此条件,则停止运行,所以出现四行结果。

      不知分析的是否正确,若哪里有不足或错误欢迎指出。