Tag: do while

'do … while'与'while'

可能重复: 虽然与做同时 什么时候应该使用do-while而不是while循环? 我已经编程了一段时间(2年工作+ 4.5年学位+ 1年大学预科),而且我从来没有使用过编程入门课程中被迫使用的do-while循环。 我越来越觉得,如果我从来没有碰到如此基本的东西,那么我在做编程错误。 难道我只是没有遇到正确的情况? 有什么样的例子需要使用do-while而不是一段时间? (我的学校几乎都是用C / C ++编写的,而且我的工作是用C#编写的,所以如果有另外一种语言,那么绝对有意义,因为生存时间的工作方式不同,那么这些问题就不适用了。 澄清…我知道一段while和一段while的区别。 在检查退出条件,然后执行任务。 do-while执行任务,然后检查退出条件。

在Bash中模拟一个do-while循环

在Bash中模拟一个do-while循环的最好方法是什么? 我可以在进入while循环之前检查条件,然后继续重新检查循环中的条件,但这是重复的代码。 有更清洁的方法吗? 我的脚本的伪代码: while [ current_time <= $cutoff ]; do check_if_file_present #do other stuff done 如果在$cutoff时间之后启动,则不会执行check_if_file_present ,而且会执行do-while。

在“条件”的同时做“无”

在浏览ForkJoinPool的Java 8版本的代码时(它从Java 7中有一些有趣的变化),我碰到了这个构造( 这里 ): do {} while (!blocker.isReleasable() && !blocker.block()); 我正在努力为什么你会这样写而不是只是 while (!blocker.isReleasable() && !blocker.block()); 它只是一个语义/可读性的select,因为你可以阅读第一个构造,因为do "nothing" while "conditions" ? 还是有一些额外的好处,我错过了?

在SQL Server 2008中执行while循环

在SQL Server 2008中执行do while循环有没有什么方法?

“while(true)”循环如此糟糕?

我已经使用Java进行了几年的编程,但是最近我刚回到学校学习正式课程。 我很惊讶地发现,在我的最后一项任务中,我失去了使用如下所示循环的要点。 do{ //get some input. //if the input meets my conditions, break; //Otherwise ask again. } while(true) 现在对于我的testing,我只是扫描一些控制台input,但我被告知,这种循环是不鼓励的,因为使用break类似于goto ,我们只是不这样做。 我完全理解goto及其Java表兄弟break:label的缺陷break:label ,我有良好的意识不要使用它们。 我也意识到,一个更完整的程序将提供一些其他的逃生方法,比如说,只是结束程序,但这不是我的教授引用的原因,所以… 什么是错误的, do-while(true) ?

testing循环的顶部或底部? (while while do do while)

当我在大学攻读CS时(80年代中期),其中一个不断被重复的想法是总是写出循环testing在顶部(while …),而不是在底部(做… while)循环。 这些概念往往是支持与研究的参考,表明在顶部testing循环统计更有可能是正确的比底部testing的同行。 结果,我几乎总是写回路在顶部testing。 我不这样做,如果它在代码中引入额外的复杂性,但这种情况似乎很less。 我注意到一些程序员倾向于专门编写在底部testing的循环。 当我看到像这样的结构: if (condition) { do { … } while (same condition); } 或者反过来( if在内部的话),这让我怀疑他们是不是真的这样写了它,或者当他们意识到循环没有处理空情况时添加了if语句。 我做了一些Googlesearch,但一直没能find关于这个主题的任何文献。 你们(和加尔)如何写你的循环?

在Python中模拟一个do-while循环?

我需要在Python程序中模拟一个do-while循环。 不幸的是,以下直接的代码不起作用: l = [ 1, 2, 3 ] i = l.__iter__() s = None while True : if s : print s try : s = i.next() except StopIteration : break print "done" 它不是“1,2,3,完成”,而是输出以下内容: [stdout:]1 [stdout:]2 [stdout:]3 None['Traceback (most recent call last): ', ' File "test_python.py", line 8, in <module> s = i.next() ', […]