黑马程序员技术交流社区
标题:
循环跳出的问题
[打印本页]
作者:
王雷1
时间:
2013-11-21 15:19
标题:
循环跳出的问题
本帖最后由 王雷1 于 2013-11-22 16:51 编辑
public class asdf
{
public static void main(String[] args)
{
er();
}
public static void er()
{ int y=0;
for(int x=0;x<28;x++)
{
if(x%3==0)
{
y++;
}if((y+x)>=28)
break;
System.out.println("需要买"+x+"瓶"+y);
}
}
}为什么x+y没有大于或等于28的时候循环就跳出了
打印出来的结果是x=20;y=y;,这是为什么呀?
作者:
王雷1
时间:
2013-11-21 15:20
上面的Y值打错了、y=7
作者:
凌风
时间:
2013-11-21 17:15
需要买0瓶8
需要买1瓶8
需要买2瓶8
需要买3瓶9
需要买4瓶9
需要买5瓶9
需要买6瓶10
需要买7瓶10
需要买8瓶10
需要买9瓶11
需要买10瓶11
需要买11瓶11
需要买12瓶12
需要买13瓶12
需要买14瓶12
你什么地方弄错了吧,正常应该是这样的输出。
作者:
smileven
时间:
2013-11-21 17:46
本帖最后由 smileven 于 2013-11-22 10:38 编辑
public class asdf
{
public static void main(String[] args)
{
er();
}
public static void er()
{ int y=0;
for(int x=0;x<28;x++)
{
if(x%3==0)
{
y++;
System.out.println("需要买"+x+"瓶------"+"y="+y);
}
if((y+x)>=28)
break;
}
}
}
你的代码结构有问题,这样写就可以了。
因为当x=20时,y=7。
当x=21时,y=8。此时会执行到break语句,brake后面的语句不会再执行,
所以最后的x=21,y=7没有输出来。
应该将输出语句放在break前面。
[attach]30131[/attach]
作者:
小楼一夜听春雨
时间:
2013-11-21 19:18
楼上正解,输出语句不应该放在结束语句的后面,若放在后面,x=21,Y=8,跳出循环条件满足,后面的输出语句不会执行了
作者:
王雷1
时间:
2013-11-22 16:50
这是一个题,我已经用while循环的方式做出来了,但是for还是没有弄明白是怎么回事,考虑这可能也是要定义加循环的x在内应该有3个变量,大家想想吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2