-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)
代码编译没有任何错误,最后一行的消息将永远不会显示.
这里的问题是你正在做什么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,这意味着你永远不会离开循环.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           128 次  |  
        
|   最近记录:  |