我有一个脚本,想要询问用户的一些信息,脚本不能继续,直到用户填写此信息。 以下是我尝试将一个命令放入一个循环来达到这个目的,但是由于某种原因它不起作用。 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 但我似乎无法得到它的工作。
所以Scala应该和Java一样快。 我正在重新讨论我最初在Java中处理的Scala中的一些Project Euler问题。 具体问题5:“从1到20的所有数字均匀分布的最小正数是多less?” 这是我的Java解决scheme,需要0.7秒才能在我的机器上完成: public class P005_evenly_divisible implements Runnable{ final int t = 20; public void run() { int i = 10; while(!isEvenlyDivisible(i, t)){ i += 2; } System.out.println(i); } boolean isEvenlyDivisible(int a, int b){ for (int i = 2; i <= b; i++) { if (a % i != 0) return false; } […]
许多Python程序员可能不知道while循环和for循环的语法包含一个可选的else:语句: for val in iterable: do_something(val) else: clean_up() else子句的主体对于某些types的清理操作是一个好的地方,并且在循环的正常结束时执行:即,用return或break退出循环跳过else子句; continue执行后退出。 我知道这只是因为我只是查了一遍(再一次),因为我永远不会记得什么时候执行else子句。 总是? 在循环的“失败”,顾名思义? 定期终止? 即使循环退出return ? 如果不查看,我永远不能完全确定。 我责怪我对关键词的select持续的不确定性:我发现这个语义的else难以置信的无法理解。 我的问题不是“为什么这个关键字用于这个目的”(我可能会投票结束,虽然只有在阅读答案和意见后),但我怎么能考虑else关键字,使其语义是有道理的,我可以记得吗? 我确信这里有相当多的讨论,我可以想象,这个select是为了与try语句的else:语句保持一致(我也必须查看),并且目标是不添加到Python的保留字列表。 也许selectelse的理由会澄清它的function,使它更加令人难忘,但是我把名字连接到function之后,而不是经过历史的解释。 这个问题的答案,我的问题被简短地重复了一遍,包含了很多有趣的背景故事。 我的问题有一个不同的焦点(如何连接else关键字select的具体语义),但我觉得应该有一个链接到这个问题的地方。
我注意到下面的代码在Python中是合法的。 我的问题是为什么? 有没有特定的原因? n = 5 while n != 0: print n n -= 1 else: print "what the…"
我已经使用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) ?
问题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); }
我有麻烦提出分号和/或大括号的正确组合。 我想这样做,但作为命令行的一行: while [ 1 ] do foo sleep 2 done
这是一位高级经理提出的面试问题。 哪个更快? while(1) { // Some code } 要么 while(2) { //Some code } 我说过,两者执行速度一样,里面的expression式最终应该是true还是false 。 在这种情况下,两者评估为true并且在while条件内没有额外的条件指令。 所以,两者都会有相同的执行速度,我更喜欢while(1)。 但面试官自信地说:“ while(1)比while(2)快。” (他没有testing我的信心) 这是真的? 另请参见: “for(;;)”比“while(TRUE)”更快? 如果没有,为什么人们使用它?
boolean r = false ; int s = 0 ; while (r == false) ; { s = getInt() ; if (!(s>=0 && s<=2)) System.out.println ("try again not a valid response") ; else r = true ; } 即使input3或123,文本也不会显示,循环也不会终止。 这里怎么了?
这是我想要的,在BACKUPDIR里面,我想执行cscript /nologo c:\deletefile.vbs %BACKUPDIR%直到文件夹内的文件数大于21( countfiles保存它)。 这是我的代码: @echo off SET BACKUPDIR=C:\test for /f %%x in ('dir %BACKUPDIR% /b ^| find /v /c "::"') do set countfiles=%%x for %countfiles% GTR 21 ( cscript /nologo c:\deletefile.vbs %BACKUPDIR% set /a countfiles-=%countfiles% )