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);
}
}
}
}
1 - int numero = in.nextDouble();
A variável é inteira (int) mas está recebendo um ponto flutuante duplo (double)?
2 - for (int numero = 1; numero < 50; numero++)
Você está tentando redefinir a variável numero
no for
.
3 - Como é uma range
(de 1 a 50), deveria haver um array de números.
Uma entre várias possíveis soluções:
import java.util.Scanner;
public class JavaApplication2 {
public static void main(String[] args) {
int numero;
int contador = 0;
int[] numeros = new int[50];
Scanner in = new Scanner(System.in);
do{
System.out.print("Digite o número: ");
numero = in.nextInt();
if(numero >= 1 && numero <= 50 && numero % 2 != 0)
numeros[contador++] = numero;
else
System.out.println("Número inválido!");
}while(contador < 50 && numero != -999);
System.out.println("\nResultado");
for(int i = 0; i < contador; i++){
System.out.print(" " + numeros[i]);
}
}
}
Rodando…