Questions tagged «while-loop»

while循环是一种控制结构,用于许多编程语言中,只要满足特定条件,就可以连续执行一组指令。

14
在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" 代替“ 1,2,3,done”,它输出以下输出: [stdout:]1 [stdout:]2 [stdout:]3 None['Traceback (most recent call last): ', ' File "test_python.py", line 8, in <module> s = i.next() …


23
哪个更快:while(1)或while(2)?
这是一位高级经理提出的面试问题。 哪个更快? while(1) { // Some code } 要么 while(2) { //Some code } 我说这两者具有相同的执行速度,因为内部表达式while最终应求值为trueor false。在这种情况下,两个true条件都求和,并且条件内部没有额外的条件指令while。因此,两者将具有相同的执行速度,我更喜欢while(1)。 但是面试官充满信心地说:“检查您的基础知识。while(1)比更快while(2)。” (他没有测试我的信心) 这是真的? 另请参见:“ for(;;)”是否比“ while(TRUE)”更快?如果没有,人们为什么要使用它?

5
为什么“ while(!feof(file))”总是错误的?
我最近在很多帖子中都看到有人试图读取这样的文件: #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { char *path = "stdin"; FILE *fp = argc > 1 ? fopen(path=argv[1], "r") : stdin; if( fp == NULL ) { perror(path); return EXIT_FAILURE; } while( !feof(fp) ) { /* THIS IS WRONG */ /* Read and process data …
573 c  file  while-loop  eof  feof 


30
循环反向真的更快吗?
我已经听过好几次了。向后计数时,JavaScript循环真的更快吗?如果是这样,为什么?我已经看到了一些测试套件示例,这些示例显示了反向循环更快,但是我找不到关于原因的任何解释! 我假设这是因为循环不再需要在每次检查是否完成时都求值一个属性,而只需要检查最终的数值即可。 即 for (var i = count - 1; i >= 0; i--) { // count is only evaluated once and then the comparison is always on 0. }

6
如何在bash中运行命令直到成功
我有一个脚本,想向用户询问一些信息,直到用户填写此信息,脚本才能继续。以下是我尝试将命令放入循环中以实现此目的的尝试,但由于某些原因它不起作用。 echo "Please change password" while passwd do echo "Try again" done 我尝试了while循环的许多变体: while `passwd` while [[ "`passwd`" -gt 0 ]] while [ `passwd` -ne 0 ]] # ... And much more 但是我似乎无法使其正常工作。
237 bash  command  while-loop 


12
如何使用matplotlib在while循环中实时绘制?
我正在尝试使用OpenCV从摄像机实时绘制一些数据。但是,实时绘图(使用matplotlib)似乎不起作用。 我将问题隔离到以下简单示例中: fig = plt.figure() plt.axis([0, 1000, 0, 1]) i = 0 x = list() y = list() while i < 1000: temp_y = np.random.random() x.append(i) y.append(temp_y) plt.scatter(i, temp_y) i += 1 plt.show() 我希望该示例可以单独绘制1000点。实际发生的是,窗口弹出并显示第一个点(表示正确),然后等待循环结束,然后再填充图的其余部分。 有什么想法为什么我一次看不到点呢?

3
具有返回类型的Java方法无需返回语句即可编译
问题1: 为什么下面的代码在没有返回语句的情况下进行编译? public int a() { while(true); } 注意:如果我在片刻之后添加return,则会得到Unreachable Code Error。 问题2: 另一方面,为什么以下代码会编译, public int a() { while(0 == 0); } 即使以下情况并非如此。 public int a(int b) { while(b == b); }

21
“ while(true)”循环是如此糟糕吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我已经用Java编程了几年了,但是最近我刚回到学校获得了正式学位。得知我在上一次作业中因使用如下所示的循环而丢了积分,我感到非常惊讶。 do{ //get some input. //if the input meets my conditions, break; //Otherwise ask again. } while(true) 现在,对于我的测试,我只是在扫描一些控制台输入,但是我被告知不鼓励这种循环,因为使用break类似于goto,我们只是不这样做。 我完全理解gotoJava及其表亲的陷阱break:label,并且我有很好的理由不使用它们。我还意识到,一个更完整的程序可以提供其他一些逃生手段,例如只是结束程序,但这不是我的教授所引用的原因,所以... 这有什么错do-while(true)?

5
如何检查列表中的所有元素是否都符合条件?
我有一个包含20000个列表的列表。我将每个列表的第3个元素用作标志。只要至少一个元素的标志为0,我想在此列表上执行一些操作,就像: my_list = [["a", "b", 0], ["c", "d", 0], ["e", "f", 0], .....] 开始时,所有标志均为0。我使用while循环检查至少一个元素的标志是否为0: def check(list_): for item in list_: if item[2] == 0: return True return False 如果check(my_list)返回True,那么我将继续处理我的列表: while check(my_list): for item in my_list: if condition: item[2] = 1 else: do_sth() 实际上,我想在对my_list进行迭代时删除其中的一个元素,但是在对它进行迭代时,不允许删除项目。 原始的my_list没有标志: my_list = [["a", "b"], ["c", "d"], …

14
我如何理解Python循环的`else`子句?
许多Python程序员可能没有意识到while循环和for循环的语法包含一个可选else:子句: for val in iterable: do_something(val) else: clean_up() else子句的主体是执行某些类型的清理操作的好地方,并在循环的正常终止时执行:即,使用return或break跳过else子句退出循环;continue执行后退出。我知道这只是因为我只是看着它(再次),因为我永远记得当该else子句被执行。 总是?顾名思义,在循环的“失败”上?定期终止吗?即使循环退出return?我永远不能完全确定,不查它。 我将不确定性归咎于关键字的选择:我发现else这种语义难以置信。我的问题不是“为什么要为此目的使用该关键字”(虽然只有在阅读了答案和评论之后,我才可能会投票关闭该关键字),但我如何考虑该else关键字,以便其语义有意义,我因此可以记住吗? 我敢肯定,对此进行了大量讨论,并且我可以想象做出这一选择是为了与try语句的else:子句(我也必须查找)保持一致,并且其目标是不添加到该语句的列表中。 Python的保留字。也许选择的原因else将阐明其功能并使之更加令人难忘,但我是将名称与功能联系在一起,而不是出于历史解释本身。 这个问题的答案(我的问题作为与之重复的问题简短地结束了)包含很多有趣的背景故事。我的问题有不同的侧重点(如何将特定语义else与关键字选择联系起来),但是我觉得应该在某个地方链接到该问题。

6
在while循环内修改的变量不被记住
在下面的程序中,如果我$foo在第一条if语句中将变量设置为值1 ,则它的工作方式是在if语句之后记住其值。但是,当我将相同的变量设置if为while语句内部的值2时,在while循环后将其忘记。就像我$foo在while循环中使用某种形式的变量副本,而我只修改该特定副本一样。这是一个完整的测试程序: #!/bin/bash set -e set -u foo=0 bar="hello" if [[ "$bar" == "hello" ]] then foo=1 echo "Setting \$foo to 1: $foo" fi echo "Variable \$foo after if statement: $foo" lines="first line\nsecond line\nthird line" echo -e $lines | while read line do if [[ "$line" == "second line" ]] …
186 bash  while-loop  scope  sh 

2
如何突破Bash的循环?
我想编写一个Bash脚本来处理文本,这可能需要while循环。 例如,在C中的while循环: int done = 0; while(1) { ... if(done) break; } 我想写一个等效的Bash脚本。但是,正如我阅读的所有经典示例所示,我通常使用的是: while read something; do ... done 它并没有提供有关如何执行while(1){}和的帮助break;,它已经很好地定义并在C语言中广泛使用,并且我不必读取stdin的数据。 有人可以通过上述C代码的Bash等效项帮助我吗?
150 bash  shell  while-loop 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.