2014-09-27 81 views
-1

有人能在这里解释这些代码背后的直觉的使用:“继续”

class ContDemo { 
    public static void main(String args[]) { 
     int i; 
     // print even numbers between 0 and 100 
     for (i = 0; i<=100; i++) { 
      if ((i%2) != 0) continue; // iterate 
      System.out.println(i); 
     } 
    } 
} 

我真不明白它背后的逻辑。有人请帮助我吗?

+3

你不了解什么? – 2014-09-27 18:41:53

+0

你想要偶数;因此,如果他们可以被2整除,你就可以展示他们。要做到这一点,你需要模块。正如伊兰指出的那样,这个设计甚至没有使用'继续'的任何一点。继续只跳过循环的其余部分并进行下一次迭代。 – 2014-09-27 18:57:02

回答

1

在这个具体的例子,没有太多点使用continue,因为你可以简单地将其替换为:

for (i = 0; i<=100; i++) { 
    if ((i%2) == 0) 
     System.out.println(i); 
} 
+1

或甚至更好地删除“if”并更改i ++与i + = 2 – 2014-09-27 19:06:36

0

的继续关键字在FFG代码的目的:

class ContDemo { 
    public static void main(String args[]) { 
    int i; 
    // print even numbers between 0 and 100 
    for(i = 0; i<=100; i++) { 
     if((i%2) != 0) continue; // iterate 
     System.out.println(i); 
    } 
    } 
} 

没有必要,但没有标签的目的是处理循环所处理的条件。如for循环刚使用时,继续关键字(在执行时会重新 - 执行条件,并开始从条件执行语句

例子:在FFG代码

for(int c = 0; c < 10; c++){ 
    continue; 
    int a = 1; 
} 

continue声明会导致。于条件不断执行过程中(计数器加),并且当它到达10循环将结束。

int a = 1;// will never be executed.It will seen as an unreachable statement by the compiler. 

continue不同于break为中断ķ eyword当它执行时立即结束循环

原谅我的语法,如果有任何错误。我欢迎编辑。希望这可以帮助。

+0

这里有一个小错误:在Java中,在关键字(例如continue或break)之后,不能有无法访问的代码。这是一个错误,并且由编译器报告。因此,继续**之后的'int a = 1;'是**错误。 – NoDataFound 2014-09-27 19:02:10

+0

我相信,如果使用语句,它不会返回错误。 – rert588 2014-09-27 19:04:28

+0

易于测试:http://pastebin.com/bnQu0j9H(jdk8) – NoDataFound 2014-09-27 19:06:27

0

“continue”跳回到循环的开始处(但不重新启动循环...) “break”立即退出循环。

1

正如问题的标题所说,“使用Continue ..”,所以这里是一个解释。每当我们需要继续一个循环,不执行下面的

continue; 

语句中的语句 声明,

continue; 

使用。例如,看看下面的代码:

for (i = 0; i<=10; i++) { 
     System.out.printf(" "+i); 
     if (i>4) 
      continue; 
     System.out.println(" is less than 5"); 
    } 

输出:

0 is less than 5 
1 is less than 5 
2 is less than 5 
3 is less than 5 
4 is less than 5 
5 6 7 8 9 10 

每当如果(ⅰ> 4)被执行块,低于

continue; 

的发言声明不执行。