标签: do-while

在Python中模拟do-while循环?

我需要在Python程序中模拟do-while循环.不幸的是,以下简单的代码不起作用:

list_of_ints = [ 1, 2, 3 ]
iterator = list_of_ints.__iter__()
element = None

while True:
  if element:
    print element

  try:
    element = iterator.next()
  except StopIteration:
    break

print "done"
Run Code Online (Sandbox Code Playgroud)

而不是"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()
', 'StopIteration
']
Run Code Online (Sandbox Code Playgroud)

我能做些什么来捕获'stop iteration'异常并正确地打破while循环?

以下将伪代码示为可能需要这样的事物的示例.

状态机:

s = ""
while True :
  if state is STATE_CODE :
    if "//" in s :
      tokens.add( TOKEN_COMMENT, s.split( "//" )[1] )
      state = …
Run Code Online (Sandbox Code Playgroud)

python while-loop do-while

731
推荐指数
13
解决办法
120万
查看次数

什么是更好的方法来避免do-while(0); hack in C++?

当代码流是这样的:

if(check())
{
  ...
  ...
  if(check())
  {
    ...
    ...
    if(check())
    {
      ...
      ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我一般都看到这个工作,以避免上面的凌乱的代码流:

do {
    if(!check()) break;
    ...
    ...
    if(!check()) break;
    ...
    ...
    if(!check()) break;
    ...
    ...
} while(0);
Run Code Online (Sandbox Code Playgroud)

有哪些更好的方法可以避免这种解决方案/黑客攻击,从而使其成为更高级别(行业级别)的代码?

任何开箱即用的建议都是受欢迎的!

c++ do-while

232
推荐指数
17
解决办法
2万
查看次数

"while(true)"循环是如此糟糕吗?

我已经用Java编程了好几年了,但我刚刚回到学校获得正式学位.我很惊讶地发现,在我上一次任务中,我使用了如下所示的循环而丢失了分数.

do{
     //get some input.
     //if the input meets my conditions, break;
     //Otherwise ask again.
} while(true)
Run Code Online (Sandbox Code Playgroud)

现在我的测试我只是扫描一些控制台输入,但我被告知这种循环是不鼓励的,因为使用break类似于goto,我们只是不这样做.

我完全理解goto和它的Java堂兄的陷阱break:label,我很有意识不使用它们.我也意识到一个更完整的程序会提供一些其他的逃避手段,例如刚刚结束程序,但这不是我教授引用的原因,所以......

怎么了do-while(true)

java while-loop do-while

215
推荐指数
9
解决办法
16万
查看次数

在Bash中模拟do-while循环

在Bash中模拟do-while循环的最佳方法是什么?

我可以在进入while循环之前检查条件,然后继续重新检查循环中的条件,但这是重复的代码.有更干净的方式吗?

我的脚本的伪代码:

while [ current_time <= $cutoff ]; do
    check_if_file_present
    #do other stuff
done
Run Code Online (Sandbox Code Playgroud)

check_if_file_present如果在$cutoff时间之后启动,这将不会执行,并且会执行.

bash loops do-while

123
推荐指数
5
解决办法
14万
查看次数

118
推荐指数
3
解决办法
54万
查看次数

'做'而'与'同时'

可能重复:
虽然与Do同时
我应该何时使用do-while而不是while循环?

我已经编程了一段时间(2年的工作+ 4.5年的学位+ 1年的大学预科课程),而且我从未使用过do-while循环而不是被迫参加编程入门课程.如果我从未遇到过如此根本的事情,我会越来越感觉我编程错了.

可能是因为我没有遇到正确的情况吗?

有哪些例子需要使用do-while而不是一段时间?

(我的学校教育几乎都是用C/C++编写的,我的工作是在C#中,所以如果有另一种语言绝对有意义,因为do-whiles的工作方式不同,那么这些问题并不适用.)

澄清......我知道a while和a 之间的区别do-while.在检查退出条件然后执行任务时.do-while执行任务然后检查退出条件.

c c# c++ while-loop do-while

75
推荐指数
9
解决办法
10万
查看次数

"条件"时"无所事事"

在浏览JavaJ版本的ForkJoinPool的代码时(我从Java 7中进行了一些有趣的更改),我遇到了这个构造(这里):

do {} while (!blocker.isReleasable() &&
             !blocker.block());
Run Code Online (Sandbox Code Playgroud)

我正在努力为什么你会这样写,而不是只是

while (!blocker.isReleasable() &&
       !blocker.block());
Run Code Online (Sandbox Code Playgroud)

它只是一个语义/可读性选择,因为你可以读取第一个结构do "nothing" while "conditions"吗?或者我还缺少一些额外的好处?

java while-loop do-while

69
推荐指数
3
解决办法
1万
查看次数

R中的do-while循环

我想知道如何编写do-while-style循环?

我发现这篇文章:

您可以使用repeat {}并检查使用if()的条件,并使用"break"控制字退出循环.

我不确定它究竟意味着什么.如果你了解它和/或你有不同的解决方案,有人可以详细说明吗?

loops r repeat do-while

56
推荐指数
3
解决办法
14万
查看次数

优雅的方式做...在groovy

如何做这样的代码groovy

do {

  x.doIt()

} while (!x.isFinished())
Run Code Online (Sandbox Code Playgroud)

因为groovy中没有do ... while语法.

目前还没有'do ... while()'语法.

由于含糊不清,我们还没有增加对Groovy的支持

参考文献:

groovy loops do-while

50
推荐指数
5
解决办法
5万
查看次数

为什么不能在do while循环的表达式部分中声明变量?

以下语法有效:

while (int i = get_data())
{
}
Run Code Online (Sandbox Code Playgroud)

但以下不是:

do
{
} while (int i = get_data());
Run Code Online (Sandbox Code Playgroud)

我们可以通过标准草案N41406.4节了解原因:

1 [...]

condition:
     expression
     attribute-specifier-seqopt decl-specifier-seq declarator = initializer-clause
     attribute-specifier-seqopt decl-specifier-seq declarator braced-init-list

2条件规则既适用于选择陈述,也适用于forwhile陈述(6.5).[...]

和第6.5

1迭代语句指定循环.

      iteration-statement: 
             while ( condition ) statement
             do statement while ( expression ) ;

相反,你被迫做一些丑陋的事情:

int i = get_data();
do
{
} while ((i = get_data())); // double parentheses sic
Run Code Online (Sandbox Code Playgroud)

这是什么理由?

c++ declaration do-while

32
推荐指数
4
解决办法
5260
查看次数

标签 统计

do-while ×10

while-loop ×5

loops ×4

c++ ×3

java ×2

bash ×1

c ×1

c# ×1

declaration ×1

groovy ×1

python ×1

r ×1

repeat ×1

sql-server ×1

sql-server-2008 ×1