我想我得到了一个无限循环

-1 java

嗨,我是新来的,通常是编程的新手.我的老师告诉我们尝试使用十进制到双转换器.好吧,我尝试这样做,并认为我是正确的方式,但不知何故,代码只是保持运行而不显示转换后的数字.所以我认为它内部可能存在无限循环,但作为一名新手程序员,我找不到它.帮助将不胜感激.

这是代码:

import javax.swing.*;

public class dezimalZuDual {
    public static void main(String[] args) {
    int dezimalZahl = Integer.parseInt(JOptionPane.showInputDialog("Hier eine Dezimalzahl eingeben:"));
    int neu = dezimalZahl;
    String dualZahl = "";

    while(neu != 0)
    {
        neu = dezimalZahl / 2;
        String rest = Integer.toString(dezimalZahl - neu * 2);
        dualZahl = rest + dualZahl;

    }   
    JOptionPane.showMessageDialog(null, "Die Dezimalzahl " + dezimalZahl + " ist im Dualzahlensystem ausgedrückt: " + dualZahl + ".");
}
}
Run Code Online (Sandbox Code Playgroud)

代码编译没有任何错误,最后一行的消息将永远不会显示.

Aif*_*ify 7

这里的问题是你正在做什么neu = dezimalZahl / 2;,哪些改变neu,但你永远不会改变dezimalZahl.

例如:

dezimalZahl = 10;
neu = 10/2 // (which is 5);
// rest of your code
Run Code Online (Sandbox Code Playgroud)

然后你检查neu != 0,这是真的,因为它是5.然后你再次通过你的循环,你做同样的事情,但dezimalZahl仍然是10!这意味着neu永远是5,这意味着你永远不会离开循环.