Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java while(var!=var)_Java - Fatal编程技术网

Java while(var!=var)

Java while(var!=var),java,Java,while(var!=var) System.out.println(“循环…”) 执行它。。 如何声明..var假设这是作业,我会给你一个提示,而不是答案。您需要这样定义var: double var = // time for you to understand floating point 编辑:为了使这个答案更普遍地有用,这里有。double var=double.NaN此外,以下内容将导致无限循环,而不是无限循环;但是如果在主while循环中有更多的东西在进行,[我认为]这可能会导

while(var!=var) System.out.println(“循环…”)

执行它。。
如何声明..var

假设这是作业,我会给你一个提示,而不是答案。您需要这样定义
var

double var = // time for you to understand floating point


编辑:为了使这个答案更普遍地有用,这里有。

double var=double.NaN

此外,以下内容将导致无限循环,而不是无限循环;但是如果在主while循环中有更多的东西在进行,[我认为]这可能会导致实际上是无限的;认为这是值得发布的,因为这是现实生活中应用服务器上可能发生的事情:

public class Puzzle extends Thread {
static boolean keepRunning=true;
static int var=0;



public void run() {

while (keepRunning) {
        var++;
}   

}


public static void main(String[] args) {
    Puzzle p=new Puzzle();
    p.setPriority(Thread.MAX_PRIORITY);
    Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
    p.start();
    System.out.println("Background Thread started");
    try { Thread.sleep(1000); } catch(Exception e) { ; } // Dirty hack to give the background thread chance to start :)
    while (var != var) {
        System.out.println(" I am inside loop now! ");
    }

    keepRunning=false; // we escaped from the loop, switch off the background thread.
}

}


现在是带标签的家庭作业,所以我才试着帮忙。这里禁止张贴家庭作业问题吗?我同意这个标签,但是为什么要使用-1呢?听起来像是一个Java难题。我建议,读一读这本书,或者找到已经解决了这个问题的stackoverflow问题。因为你只能通过自己的尝试来学习。而这正是你所期待的问题?除非你要找一份写数字代码的工作,否则像这样的问题会成为拒绝一家公司的理由。如果你想找一份数字工作,那么,不要抱太高的希望。我想每个人在职业生涯中都至少犯过一次这样的错误:)对我来说,这是一个SQL语句,但对我来说,是的,同样的想法:-)似乎是一个只有聪明的讲师才会问的愚蠢的欺骗问题,对我来说几乎不公平。这取决于上下文,我想是吧。如果你在学习循环,那么我同意,这是一个愚蠢的把戏。如果你在写数值方法,那么你需要知道很多关于IEEE数字的事情,这只是其中之一。正如我前面提到的,在SQLNullNull中,也有volatile-var,但是进入循环会有一个严格的时间限制,你试过这个吗<代码>Double.NaN!=Double.NaN的计算结果为
false
.lol。你说-1,但你没有给出-1…不仅仅是一个家庭作业答案,也是一个错误的答案。不,从c#推断,可能是java做的不同,如果它的家庭作业是一个相当垃圾的家庭作业问题。伊姆霍安卓:是的,但是如果你声明“Double var=Double.NaN”;正如最初的答案所建议的,“var!=var”是错误的。我把它作为一个练习留给你去找出原因:)-1提供家庭作业答案。L我,莱皮-学生通过自己尝试找到答案学到了什么?我告诉你。。。没什么,因为这是唯一一个适用于这个问题的边缘案例。否则,我通常会同意不回答家庭作业问题,而是向学生指出答案的大致方向。如果这确实是一个家庭作业问题,鉴于其不存在的教育价值,我认为在这里回答它没有问题。他会学习谷歌“如何声明”和“java”并在未来将其新收购的谷歌富重新用于其他主题。不过,没有必要投否决票;我认为每个人都应该自己决定是否回答。事实上,我认为我的观点是错误的,认为这是“有效的无限”,但确实是不确定的。(var!=var有时是真的,因为缺少任何同步)。
public class Puzzle extends Thread {
static boolean keepRunning=true;
static int var=0;



public void run() {

while (keepRunning) {
        var++;
}   

}


public static void main(String[] args) {
    Puzzle p=new Puzzle();
    p.setPriority(Thread.MAX_PRIORITY);
    Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
    p.start();
    System.out.println("Background Thread started");
    try { Thread.sleep(1000); } catch(Exception e) { ; } // Dirty hack to give the background thread chance to start :)
    while (var != var) {
        System.out.println(" I am inside loop now! ");
    }

    keepRunning=false; // we escaped from the loop, switch off the background thread.
}

}