“嗨,阿米戈!
“嗨,艾莉。”
“你已经研究过循环,这很酷。”
“我同意!现在我完全不知道没有他们该如何生活。”
“有时候你可以不用它们……但更多时候你会需要它们。今天我们要说的是当你需要提前跳出循环时的情况。”
“你的意思是,当继续循环的条件为真,但你还需要退出循环?”
“没错!有时候你听起来好像你已经是一名程序员了。无论如何,要提前跳出一个循环,你可以使用 break 语句。看看下面的例子:
代码 | 解释 |
---|---|
|
该程序将从键盘读取一行,直到您输入"exit" 。 |
“我明白了。程序从控制台读取行。如果输入"exit"
,则isExit
变量变为true
,循环条件将为,循环将结束。”!isExit
false
”没错。所以,Java有一个特殊的break
语句,可以让你简化这样的逻辑。如果一个break
语句在循环内部执行,那么循环立即结束。程序会开始执行循环后面的语句。语句非常简短:
break;
“下面是如何使用break
语句重写我们刚刚讨论的示例:
代码 | 解释 |
---|---|
|
该程序将从键盘读取一行,直到您输入"exit" 。 |
“也许我会记住的,我觉得它会派上用场。”
“但这break
不是唯一允许您控制循环行为的 Java 语句。Java 也有该continue
语句。如果您continue
在循环内执行语句,循环的当前迭代将提前结束。”
“迭代是什么意思?”
“循环迭代是循环体的一次执行。continue
语句中断循环的当前迭代,但与break
语句不同的是,它不会结束循环本身。语句也很简短:
continue;
“那么,continue
如果我们想‘跳过’循环的某些迭代的执行,那么可以在循环中使用该语句?”
break
“没错,你明白和的区别吗continue
?如果你需要在20个不重复的数字中找到一个7,你会用什么样的循环和循环中断语句?
“嗯……我会检查所有的数字,如果我找到 7,那么我会执行一个break
。”
“如果您需要显示从1
到20
除了可被 整除的数字怎么办7
?”
“好吧,在这里我可能需要continue
,因为我不想退出循环。但我还是不太明白。”
“让我告诉你如何解决这个问题。这就是这段代码的样子。”
代码 | 解释 |
---|---|
|
该程序显示从1 到 的数字20 。如果数字可以被整除7 (余数除以7 ) 0 ,那么我们将跳过显示数字。 |
“你为什么这么怀疑地看着我,艾莉?这里有什么陷阱吗?”
“你不会被愚弄的,阿米戈!事实上,这段代码不会正常工作。它会显示前 6 位数字,然后i
永远停留在数字上7
。毕竟,该continue
语句跳过了另外两个语句:System.out.println(i)
和i++
。作为结果,一旦我们达到 value 7
,变量i
将停止变化,我们将陷入无限循环。我这样写代码是为了说明一个非常常见的错误。”
“我们如何解决它?”
“这里有两个选择:”
选项 1:i
在执行之前更改continue
,但之后i % 7
选项 2:i
始终在循环开始时递增。但那时i
的起始值必须是0
.
选项1 | 选项 2 |
---|---|
|
|
“太好了!我会尽量不犯这个错误的。”
“我会记住你的承诺的!”
GO TO FULL VERSION