Tag: 无限循环

为什么不是setTimeout取消我的循环?

我想知道JavaScript语句(在Chrome的控制台中)可以在一毫秒内增加一个variables的次数,所以我很快就把这个代码片段直接写到了控制台中: var run = true, i = 0; setTimeout(function(){ run = false; }, 1); while(run){ i++; } 问题是它永远运行。 为什么会发生这种情况,我该如何解决?

看似无休止的循环终止,除非使用System.out.println

我有一个简单的代码应该是一个无尽的循环,因为x将永远在增长,并将永远比j更大。 int x = 5; int y = 9; for (int j = 0; j < x; j++) { x = x + y; } System.out.println(y); 但是现在,它打印y并且不会无休止地循环。 我无法弄清楚为什么。 但是,当我按以下方式调整代码时: int x = 5; int y = 9; for (int j = 0; j < x; j++) { x = x + y; System.out.println(y); } System.out.println(y); […]

如何在Windowsbatch file中创build一个无限循环?

这基本上是我想要在batch file中。 我想要重新运行“做东西”,每当我按任何键通过“暂停”。 while(true){ Do Stuff Pause } 看起来像只有循环可用和批次没有while循环。 那么我如何创build一个无限循环呢?

这个while循环有什么问题?

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,文本也不会显示,循环也不会终止。 这里怎么了?

增量运算符不会在for循环中递增

我正在做一些关于Java的研究,发现这非常混乱: for (int i = 0; i < 10; i = i++) { System.err.print("hoo… "); } 这是永无止境的循环! 有人解释为什么会发生这种事

如何在java中使用Scanner方法“hasNext”作为条件退出while循环?

我是一个初学java编程,并遇到了一个奇怪的问题。 下面是我的代码,它要求用户input并打印出用户每次input一个单词的内容。 问题是程序永远不会结束,而且从我的有限理解来看,它似乎陷入了while循环内部。 任何人都可以帮我一下吗? 提前致谢。 import java.util.Scanner; public class Test{ public static void main(String args[]){ System.out.print("Enter your sentence: "); Scanner sc = new Scanner (System.in); while (sc.hasNext() == true ) { String s1 = sc.next(); System.out.println(s1); } System.out.println("The loop has been ended"); // This somehow never get printed. } }

Prolog后继符号产生不完整的结果和无限循环

我开始学习Prolog,并首先了解后继符号。 这是我在Prolog中写皮纳诺公理的地方。 见PDF第12页: sum(0, M, M). sum(s(N), M, s(K)) :- sum(N,M,K). prod(0,M,0). prod(s(N), M, P) :- prod(N,M,K), sum(K,M,P). 我把乘法规则放到Prolog中。 然后我做这个查询: ?- prod(X,Y,s(s(s(s(s(s(0))))))). 这意味着基本上find6的因素。 这是结果。 X = s(0), Y = s(s(s(s(s(s(0)))))) ? ; X = s(s(0)), Y = s(s(s(0))) ? ; X = s(s(s(0))), Y = s(s(0)) ? ; infinite loop 这个结果有两个问题: 不是所有的结果都显示出来,注意结果X = 6,Y = […]

编译器是否允许消除无限循环?

可以优化编译器删除无限循环,这不会改变任何数据,如 while(1) /* noop */; 从分析编译器可以派生的数据stream图来看,这样的循环是“死代码”,没有任何副作用。 删除C90 / C99标准禁止的无限循环? C90或C99标准是否允许编译器删除这样的循环? 更新:“微软C版本6.0本质上做了这种优化。”,见caf链接。 label: goto label; return 0; 将被转化为 return 0;

如果我input一个字母而不是一个数字,为​​什么我会得到一个无限循环?

我正在编写一个家庭作业的代码(刚刚启动C ++,所以请轻松)。 我们刚刚开始,今天做,做和循环。 该程序运行正常,但如果您input一个字母,当程序要求一个整数,它无限循环。 到底是怎么回事? (下面的代码)***编辑:澄清,循环的部分是:“您input的数字是负数,请input一个正数继续。 但用户没有机会input另一个号码。 它只是不断打印这个。 #include <iostream> using namespace std; int main ( ) { //define variables int num1, num2, total; char answer1; do { //user enters a number cout << "\nPlease enter a positive number and press Enter: \n"; cin >> num1; //check that the given num1 value is positive while […]

是“for(;;)”比“while(TRUE)”更快? 如果没有,为什么人们使用它?

for (;;) { //Something to be done repeatedly } 我已经看到了这种东西,但是我觉得这很奇怪……说实话,说这些话不是很清楚吗? 我猜(这是许多程序员求助于隐藏代码的原因),这是一个微小的利润更快? 为什么,这真的值得吗? 如果是这样,为什么不这样定义: #define while(true) for(;;) 另见: 哪个更快:while(1)或while(2)?