Laço while

Preciso fazer um programa que receba um número do usuário e mostre todos os números pares e ímpares, separadamente, a partir do 0, até o número que o usuário digitou.
Do jeito que estou fazendo imprime na tela apenas os valores como true ou false e não os números.

Deixa eu dar uma olhada no código :wink:

package br.com.estudojava.livro.capituloii;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Teste {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("Sua mensagem aqui: ");
		int numero = scanner.nextInt();
		int contador = 0;
		ArrayList<Integer> pares = new ArrayList<>();
		ArrayList<Integer> impares = new ArrayList<>();

		while (contador <= numero) {
			if (contador % 2 == 0) {
				pares.add(contador);
				contador++;
			} else {
				impares.add(contador);
				contador++;
			}
		}
		System.out.println("Números pares");
		for (Integer i : pares) {
			System.out.println(i);
		}
		System.out.println("Números ímpares");
		for (Integer i : impares) {
			System.out.println(i);
		}

	}

}

Não conseguimos ver o jeito que você está fazendo se não postar o código.

1 curtida

Matheus, apesar da sua intenção ser boa, tente adotar o ditado “dê o peixe a um homem e ele matará sua fome no dia. Ensine o homem a pescar e ele nunca mais passará fome”. Fora que estou pensando que ele deve estar começando agora em Java, talvez o uso de Arraylist o assuste. Dá pra fazer com um vetor normal…

2 curtidas

Na verdade tentando arrumar o código, eu criei um loop infinito.
Não tenho ideia de como usando só o while e o if escrever algo que fosse do 0 até o número que o usuário digitou.
Meu código no momento tá assim:

Scanner entrada = new Scanner (System.in);
int num;
System.out.println("Digite um número: ");
num = entrada.nextInt();
while(num>0){
if(num%2==0){
System.out.println("Números pares: ");

      System.out.println(num++);
    num++;
  }

}
while(num>0){
if(num%2!=0){
System.out.println("Números impares: "+num++);
num++;

E precisa ser com while? Não pode ser com for?

Usando for:

int ate = Integer.parseInt(entrada.nextLine());
for (int de = 0; de < ate; de++) {
    // aqui escreve algo
}

Usando while:

int de = 0;
int ate = Integer.parseInt(entrada.nextLine());
while (de < ate) {
    // aqui escreve algo
    de++;
}
1 curtida

É só usando o laço while mesmo
e eu não entendi essa linha do código

int ate = Integer.parseInt(entrada.nextLine());

Poderia me explicar pfv?

parseInt

nextLine