Laço while

8 respostas
Fran.Silva

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.

8 Respostas

Matheus_Henrique2

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

Matheus_Henrique2
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);
		}

	}

}
staroski

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

FearX

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…

Fran.Silva

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 (<a href="http://System.in">System.in</a>);

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++;
staroski

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++;
}
Fran.Silva

É 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?

staroski

parseInt

nextLine

Criado 10 de agosto de 2018
Ultima resposta 11 de ago. de 2018
Respostas 8
Participantes 4