在Java中继续声明

时间:2017-10-06 17:16:02

标签: java continue

我添加了一个continue语句来结束当前的迭代,以便循环体中的其余语句不会被执行。

Unknown host: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我无法理解的是,如果我添加public class Main { public static void main(String[] args) { int sum = 0; int number = 0; while (number < 20) { number++; if (number == 10 || number == 11) continue; sum += number; } System.out.println(sum); } } ,我会收到错误的原因?

{}

错误

public class Main {
    public static void main(String[] args) {
        int sum = 0;
        int number = 0;
        while (number < 20) {
            number++;
            if (number == 10 || number == 11) {
                continue;
                sum += number;
            }
        }
        System.out.println(sum);
    }
}

5 个答案:

答案 0 :(得分:2)

这会奏效。

if (number == 10 || number == 11) {
    continue;
}
sum += number;

<强>解释

如果您未在{}语句中添加if,则只会考虑下一行。因此,您需要将sum += number 保留在<{1}}

之外

答案 1 :(得分:1)

因为continue语句在你的分支中是最终的(在{}之间),所以下一个语句(sum + = number)将永远不会执行。你的IDE必须警告你,这就是为什么它没有编译它而你得到了错误。

答案 2 :(得分:1)

在你的第一个区块中,没有{的人有效地写了:

if (number == 10 || number == 11) {
      continue;
}
sum += number;

只要表达式为sum += number,就可以访问false

在第二篇文章中,您实际上写道:

if (number == 10 || number == 11) {
       continue;
       sum += number;
}

sum += number;已无法访问,因为如果表达式为true,则由于continue将始终跳过该表达式,如果表达式为false,则不会执行该表达式,因为它不在块语句中

答案 3 :(得分:1)

正如其他答案所说的那样,只有第一行代码才能在if语句之后运行。但是,另一个规则是,在&#34; continue&#34;之后,您无法再添加任何代码行。 if语句中的语句。所以,这确实是错误。如果你要调整代码来切换&#34; sum + = number;&#34;继续,您不会收到相同的错误。希望这会有所帮助。

答案 4 :(得分:0)

您在if块的大括号(sum += number;)中执行{}

if (number == 10 || number == 11) {
    continue;
    sum += number;
}

这将起作用:

if (number == 10 || number == 11) {
    continue;
}
sum += number;