开发者社区 问答 正文

当外层循环不满足时怎么跳出不再执行

一段程序。比较郁闷的是,但i循环到i = 3 的时候,虽然内层循环的条件满足,但是外层循环的条件已经不满足了。为什么不把两层循环都跳出来呢。不然就不会造成我内层循环index out of bounday错误了。另外有没有什么方式让他知道外层循环的条件已经不满足了,应该两层循环都跳出来。
screenshot

展开
收起
蛮大人123 2016-02-25 17:43:05 2515 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    可以为一个循环命名。这大概是你想问的。

    outerLoop:while (i < a.length()) {
        while (a.charAt(i) == 'M') {
            val += 10;
            i++;
            if (i >= a.length())
                break outerLoop;
        }
    }

    但你完全没必要包一个外层循环,

    for(;i < a.length() && a.charAt(i) == 'M';i++)
        val += 10;

    另外,对于外部循环来说, 内部循环整个做完一套才算外部循环的一次。外部循环那一层的判断只是在每一次外部loop开始时检查的,一次loop只检查一次之后就不管的,并不是时时监控该条件是否满足的。你要时时监控,就必须在你每次改变i的值之后都作一次检查。

    2019-07-17 18:47:46
    赞同 展开评论
问答地址: