首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >会在一段时间内继续工作吗?

会在一段时间内继续工作吗?
EN

Stack Overflow用户
提问于 2010-01-07 05:47:28
回答 7查看 34.6K关注 0票数 29

我有一个do while,看起来像这样:

代码语言:javascript
复制
User user = userDao.Get(1);

do
{
 // processing


 // get the next user
 //
 user = UserDao.GetNext(user.Id);

 if(user == null)
       continue;   // will this work?????????????
}
while ( user != null)

如果它工作了,它将转到do语句的顶部,而user为空,那么事情就会中断?

也许我应该把这个循环改写成while语句?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-01-07 05:55:15

continue使它跳到底部的评估,这样程序就可以评估它是否必须继续另一个迭代或退出。在这种情况下,它将退出。

这就是规范:http://java.sun.com/docs/books/jls/third_edition/html/statements.html#6045

这样的语言问题你可以在Java:http://java.sun.com/docs/books/jls/中搜索到

票数 45
EN

Stack Overflow用户

发布于 2010-01-07 05:55:41

这真的不是写这段代码的最佳方式。如果user为null,则在下次尝试获取user.id时将获得NullPointerException。一种更好的方法是:

代码语言:javascript
复制
User user = UserDao.Get(1);
while(user != null) {
  // do something with the user
  user = UserDao.GetNext(user.id);
}
票数 5
EN

Stack Overflow用户

发布于 2010-01-07 05:51:32

是的,continue将在do..while循环中工作。

您可能希望使用break而不是continue来停止处理用户,或者完全删除if null continue位,因为只要user为null,while循环就会中断。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2016513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档