黑马程序员技术交流社区

标题: 这个有点凌乱了,懂的进来帮我看看吧。 [打印本页]

作者: 沐阳6011    时间: 2014-5-29 16:11
标题: 这个有点凌乱了,懂的进来帮我看看吧。
本帖最后由 沐阳6011 于 2014-5-30 08:03 编辑

关于continue的,大家看下哈
  1. class PanDuan
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for(int x=1;x<=10;x++)
  6.                 {
  7.                         if(x%2==0)
  8.                         {
  9.                                 System.out.println("x="+x);
  10.                         }
  11.                 }
  12.         }
  13. }
复制代码

这样的话运行结果出来是这样的
x=2
x=4
x=6
x=8
x=10
但是代码改过后,改成:
  1. class PanDuan
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for(int x=1;x<=10;x++)
  6.                 {
  7.                         if(x%2==0)
  8.                         continue;
  9.                         System.out.println("x="+x);
  10.                         
  11.                 }
  12.         }
  13. }
复制代码

后,运行结果就变成:
x=2
x=4
x=6
x=8
x=10。
百思不得其解,本人小白,求会的人帮我解答一下:(:P
作者: zhaojian    时间: 2014-5-29 16:51
你搞错了吧,下面代码运行结果是
x=1
x=3
x=5
x=7
x=9
if(x%2==0)成立就continue继续循环,下面的打印语句读不到,如果不成立才会打印。
作者: 茂子    时间: 2014-5-29 16:51
呃,你这个情况我做练习的时候也遇见过。
结果应该是1,3,5,7,9;
至于出现这样的原因可能有如下:
1.你修改后没有保存而进行编译,接着运行,结果就和之前一样;
2.如果你修改改后保存再编译,还是出现问题,我觉得应该是电脑“凌乱了”,我遇见的就是这种情况,解决的时候就是重启窗口,不行的话就重启计算机。。。
作者: 诺诺    时间: 2014-5-29 17:51
运算结果应该是13579,f(x%2==0)成立就continue继续循环,二楼说的很对, ==执行不到的
作者: 万马奔腾    时间: 2014-5-29 18:18
楼主这样太马虎了 ,应该是没有保存的原因。
作者: 相濡、彼岸    时间: 2014-5-29 21:33
本帖最后由 相濡、彼岸 于 2014-5-29 21:45 编辑



作者: 沐阳6011    时间: 2014-5-29 21:57
zhaojian 发表于 2014-5-29 16:51
你搞错了吧,下面代码运行结果是
x=1
x=3

还真是哎,我确实是整错了。没复制上
作者: 沐阳6011    时间: 2014-5-30 08:01
茂子 发表于 2014-5-29 16:51
呃,你这个情况我做练习的时候也遇见过。
结果应该是1,3,5,7,9;
至于出现这样的原因可能有如下:

恩,我知道是怎么回事了,是我太马虎,下面的结果没有复制上,谢谢哥们的解答。我现在想明白有continue语句后为什么会出现这样的情况了。谢谢
作者: 沐阳6011    时间: 2014-5-30 08:03
万马奔腾 发表于 2014-5-29 18:18
楼主这样太马虎了 ,应该是没有保存的原因。

其实是保存了的,发帖的时候运行结果应该复制错了,哎呀,浪费大家时间了,太对不住了:'(:'(
作者: 沐阳6011    时间: 2014-5-30 08:05
相濡、彼岸 发表于 2014-5-29 21:33

哥们儿你解释的很详细啊,谢谢你。都怪我发帖的时候结果没复制上,其实是不明白结果为什么是1.3.5.7.9。
现在我想明白continue语句的作用了,谢谢你。
作者: 侯金龙    时间: 2014-5-30 10:36
既然就复制错了,就是运行时是对的,那怎么会有疑问那
作者: 沐阳6011    时间: 2014-5-30 10:40
侯金龙 发表于 2014-5-30 10:36
既然就复制错了,就是运行时是对的,那怎么会有疑问那

是因为当时不知道为什么加上continue;之后会出现这样的结果,后来自己一步步走了一下,就看明白了
作者: More    时间: 2014-5-30 12:36
执行到continue时跳到条件处继续执行,不执行continue下面的代码
作者: KevinSmart    时间: 2014-5-30 13:43
执行到Continue 就会跳入下一个循环了,下面的打印是x=1 x=3 x=5 x=7 x=9

作者: 喜爱    时间: 2014-5-30 17:41
这个可以有啊,continue是进入下一次循环,就不会执行continue后面的代码了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2