Estou começando agora e na apostila da caelum tem um exercício.
se x é par, y = x / 2
se x é impar, y = 3 * x + 1
imprime y
O programa deve então jogar o valor de y em x e continuar até que y tenha o valor final de 1. Por
exemplo, para x = 13, a saída será:
40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1
[color=darkred]SÓ QUE EU QUERIA EM VEZ DE COLOCAR UM VALOR FIXO, deixar o usuário inserir[/color]. Mas meu código está dando loop infinito por exemplo quando digito 13 a saída está 40, 40, 40, 40, 40, 40, 40... dêem uma conferida (obs troquei o nome da variável "y" que pede no enunciado acima por "regra").
Código:
import javax.swing.JOptionPane;
public class calculo {
public static void main (String [ ] args) {
int regra;
String y = JOptionPane.showInputDialog("Digite um número");
int x = Integer.parseInt(y);
while(x>0) {
if (x%2==0){
regra = x/2;
}
else{
regra = 3 * x +1;
}
System.out.print(regra+", ");}
System.exit(0);
}
}
Queria colocar a saída com o JOptionPane.showMessageDialog, mas deixei com o método System.out.print.