int i = 0;
        do {
            flag = false;
            System.out.print(i++);
            flag = i < 10;
            continue;
        } while ((flag) ? true : false);按我的理解,执行到continue,根本不会跳到while,而是又从do开始做了,不是吗?

解决方案 »

  1.   

    执行到continue会去判断while的条件啊,否则你这程序不是死循环了
      

  2.   

    continue跳出循环体, while ((flag) ? true : false);不属于循环体。
      

  3.   

    nnd,半年没写程序了。看到程序反应居然有点迟钝。
      

  4.   

    continue语句的作用:
                  使程序跳过循环体中continue语句后面未执行完的语句,而直接进行是否满足循环条件的判断(不会跳过循环条件的判断)。
    本例循环运行步骤:
           第一次循环:①开始时flag与i均为0;
                        ②先输出i ,接着将i < 10表达式的真假值赋给flag
                        ③最后,continue语句将跳至while中(而非直接进入下一个循环);
                        ④(flag) ? true : false表达式:
                                    判断在第②步中赋给flag的表达式值。
                   若为真,则整个表达式的值为true,进入下一个循环;
                   若为假,则整个表达式的值为false,跳出整个循环。
           在以后的循环中(第一个循环中满足循环条件) ,将分别输出123456789,最后当i=10时不满足循环条件时中止循环
    备注:红色标记文本为注意事项(如果是高手的话,程序运行步骤可直接略过)