0
私はJPanel上でJButtonを作成しようとしています。これをクリックすると、雹の番号が生成されます(番号が2で偶数であれば、奇数の場合は3を掛けて1を加えます)。しかし、私のJButtonをクリックすると、プログラムはフリーズし、番号は出力されません。なぜこうなった?ここでなぜこの雹の番号の生産者は機能しませんか?
が私のコードです:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Panel03 extends JPanel {
private JLabel label;
private JButton button;
private JTextField box;
public Panel03()
{
box = new JTextField("0", 10);
box.setForeground(Color.black);
box.setHorizontalAlignment(SwingConstants.RIGHT);
add(box);
label = new JLabel();
label.setFont(new Font("Serif", Font.BOLD, 20));
label.setForeground(Color.blue);
add(label);
button = new JButton("Next");
button.addActionListener(new Listener());
add(button);
}
private class Listener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = box.getText();
int a = Integer.parseInt(s);
int b = a;
do {
if(a%2 == 0){b/=2.0;}
else{a=((3*b)+1);}
label.setText(Integer.toString(b));
}
while(b!= 4||b!= 2||b!= 1);
}
}
}
:私はあなたがここでやろうとしているかわからないが、私はあなたのループ終了ロジックがあるべき容疑者との代わりに、または、aとb = 0可能性をキャッチする必要があります2.あなたが '||'の代わりに '&&'を意味したのかもしれません。 – shmosel
ループの中で値を設定した後、 'a'を使用していません。 –