Exercício 1
Faça um programa que imprima na tela apenas os números ímpares entre 1 e 50
- Meucodigo.java ( NetBeans 7 )
- Por que meu código não funciona?
import java.util.Scanner;
public class JavaApplication2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Digite uma numero:");
int numero = in.nextDouble();
while(numero < 1 || numero > 50 ){
System.out.println("Numero invalido! Digite outra numero.");
numero = in.nextDouble();
} System.out.println("Numero valido!");
for (int numero = 1; numero < 50; numero++) {
if (numero % 2 != 0) {
System.out.println("Numero valido!, valor impar:" + numero);
System.out.println(numero);
}
}
}
}
É importante especificar o que exatamente não funciona.
O que vc identificou de errado? O programa não compila? O programa compila, mas dá erro na hora de rodar? O programa compila, roda, mas não faz o que vc queria que ele fizesse?
Eu testei o código e vi que ele nem compila e os motivos são 2:
#1 Na linha abaixo vc declara uma variável do tipo int
, mas tenta armazenar nela um valor do tipo double
int numero = in.nextDouble();
O correto seria:
int numero = in.nextInt();
// ou então:
double numero = in.nextDouble();
#2 Na linha abaixo vc está redeclarando a variável numero
:
for (int numero = 1; numero < 50; numero++) {
Para corrigir, basta escolher um outro nome pra sua variável.
for (int n = 1; n < 50; n++) {
Aparentemente a sua lógica está correta, mas como o exercicio pede pra imprimir todos os números entre 1 e 50, não há necessidade de pedir pro usuário digitar um número.