我有一个do while,看起来像这样:
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语句?
发布于 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/中搜索到
发布于 2010-01-07 05:55:41
这真的不是写这段代码的最佳方式。如果user为null,则在下次尝试获取user.id时将获得NullPointerException。一种更好的方法是:
User user = UserDao.Get(1);
while(user != null) {
// do something with the user
user = UserDao.GetNext(user.id);
}
发布于 2010-01-07 05:51:32
是的,continue
将在do..while循环中工作。
您可能希望使用break
而不是continue
来停止处理用户,或者完全删除if null continue
位,因为只要user为null,while循环就会中断。
https://stackoverflow.com/questions/2016513
复制相似问题