publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);System.out.print("Insere o numero que deseja criar a sequencia?");doublen=scan.nextInt();doublei=2;doublecount=0;doublec;doubled;for(doublej=n;j>=i;j--){count++;do{if(j%2==0){d=j/4;System.out.print(d);}else{c=j*3+1;System.out.print(c);}}while(d==1);}System.out.println();System.out.println(count);}
}
Este programa faz uma sequencia de números, e o que quero que o programa faça é que quando chegue ao 1, o programa pará porem o while não está a funcionar. Não sei o problema. Em numeros pares ele divide por 2 enquanto em numeros impares ele multiplica por 3 e soma por 1.
E o programa no fim diz quantas operações fez até chegar ao 1.
Me diz que eventual repetição do trecho só deve ocorrer se d for exatamente igual a 1, logo, se após a primeira iteração o valor for diferente de 1, ele seguirá com o código, sem repetir o loop.
E
estike
Pois eu quero que ele faça a sequencia até chegar ao 1. Nao devo portanto usar o while ?
drsmachado
Ou seja, a condição não deve ser “enquanto d = 1”, certo?
D
Delmar27
if (d == 1){
//O que você quer que faça
}
E
Edjane
Olá faz o seguinte altera a seguinte linha:
doublen=scan.nextInt();
para:
doublen=scan.nextDouble();
Pois vc esta passando um valor Double, ve aí se dá certo, outra dica sempre inicialize as variáveis locais (variáveis de métodos)
Abs.,
E
estike
Pois nao sei se expliquei me bem o que quero fazer é :
import java.util.Scanner;
public class guiao4 {
publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);System.out.print("Insere o numero que deseja criar a sequencia?");doublen=scan.nextInt();doublei=2;doublecount=0;doublec;doubled=0;for(doublej=n;j>=i;j--){count++;if(j%2==0){d=j/4;System.out.println(d);}else{c=j*3+1;System.out.println(c);}}System.out.println();System.out.println("O numero de operaçoes é "+count);}
}
Ao usar este programa fico com a soluçao:
Insere o numero que deseja criar a sequencia?10
2.5
28.0
2.0
22.0
1.5
16.0 1.0 Eu gostava que acabasse aqui a sequencia
10.0
0.5
O numero de operaçoes é 9.0
E queria usar um do and while .
D
Delmar27
estike:
Pois nao sei se expliquei me bem o que quero fazer é :
import java.util.Scanner;
public class guiao4 {
publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);System.out.print("Insere o numero que deseja criar a sequencia?");doublen=scan.nextInt();doublei=2;doublecount=0;doublec;doubled=0;for(doublej=n;j>=i;j--){count++;if(j%2==0){d=j/4;System.out.println(d);}else{c=j*3+1;System.out.println(c);}}System.out.println();System.out.println("O numero de operaçoes é "+count);}
}
Ao usar este programa fico com a soluçao:
Insere o numero que deseja criar a sequencia?10
2.5
28.0
2.0
22.0
1.5
16.0 1.0 Eu gostava que acabasse aqui a sequencia
10.0
0.5
O numero de operaçoes é 9.0
E queria usar um do and while .
Usando do…while poderia ser assim:
do{
//Código
}
while(d > 1);
E
estike
Delmar27:
estike:
Pois nao sei se expliquei me bem o que quero fazer é :
import java.util.Scanner;
public class guiao4 {
publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);System.out.print("Insere o numero que deseja criar a sequencia?");doublen=scan.nextInt();doublei=2;doublecount=0;doublec;doubled=0;for(doublej=n;j>=i;j--){count++;if(j%2==0){d=j/4;System.out.println(d);}else{c=j*3+1;System.out.println(c);}}System.out.println();System.out.println("O numero de operaçoes é "+count);}
}
Ao usar este programa fico com a soluçao:
Insere o numero que deseja criar a sequencia?10
2.5
28.0
2.0
22.0
1.5
16.0 1.0 Eu gostava que acabasse aqui a sequencia
10.0
0.5
Pois nao sei se expliquei me bem o que quero fazer é :
import java.util.Scanner;
public class guiao4 {
publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);System.out.print("Insere o numero que deseja criar a sequencia?");doublen=scan.nextInt();doublei=2;doublecount=0;doublec;doubled=0;for(doublej=n;j>=i;j--){count++;if(j%2==0){d=j/4;System.out.println(d);}else{c=j*3+1;System.out.println(c);}}System.out.println();System.out.println("O numero de operaçoes é "+count);}
}
Ao usar este programa fico com a soluçao:
Insere o numero que deseja criar a sequencia?10
2.5
28.0
2.0
22.0
1.5
16.0 1.0 Eu gostava que acabasse aqui a sequencia
10.0
0.5