Implementação do While

1 resposta
Dede_Tomaz

Quero Criar uma classe em Java que leia uma quantidade desconhecida de números e conte quantos deles estão nos seguintes intervalos: [0 - 25], [26 - 50], [51 - 75] e [76 - 100]. A entrada de dados deve terminar quando for lido um número negativo.

Esse foi o Código q eu pensei mas ele não da certo alguém pode ajudar??

import java.util.Scanner;

public class Exercicio_9 {


	public static void main (String args[]){

		Scanner scan = new Scanner (System.in);
		int i = 0;
		
		System.out.println("Digite um Numero");
		i = scan.nextInt();
		
		while ( i > 0 )
		i++;
		System.out.println("Digite novamente um numero");
		i = scan.nextInt();
		

		if ((i > 0) && (i <= 25))

			System.out.println("o numero está entre 0 e 25");

		else 
			System.out.println("o numero não está entre 0 e 25");

		if ((i >= 26) && (i <= 50))

			System.out.println("o numero está entre 26 e 50");

		else 
			System.out.println("o numero não está entre 26 e 50");

		if ((i >= 51) && (i <= 75))

			System.out.println("o numero está entre 51 e 75");

		else 
			System.out.println("o numero não está entre 51 e 75");

		if ((i >= 75) && (i <= 100))

			System.out.println("o numero está entre 75 e 100");

		else 
			System.out.println("o numero não está entre 75 e 100");



	}

}

1 Resposta

CharlesAlves

Bom um dos erros está no local em que está sendo atribuido o valor a i no while, pois este deveria estar no final e não no inicio dele, outra coisa que está errado é a linha que contem o i++ ela é totalmente desnecessária pois não está influenciando em nada no código, e não foram criadas variaveis para guardar a contagem de quantas vezes um determinado intervalo apareceu, esta ultima parte poderia ser solucionada criando um array de int com 4 posições que representa a quantidade de intervalos ou quatro variaveis independentes, e estes valores devem ser exibidos após o while ser finalizado.

import java.util.Scanner;

public class Exercicio_9 {


	public static void main (String args[]){

		Scanner scan = new Scanner (System.in);
		int i = 0;
		
		System.out.println("Digite um Numero");
		i = scan.nextInt();
		
		while ( i > 0 )
		i++; // Linha desnecessária pode ser apagada
		System.out.println("Digite novamente um numero"); // Estas duas linhas estão no lugar errado
		i = scan.nextInt();                               // o correto é estarem no final do while antes da chave de fechamento (})
		

		if ((i > 0) && (i <= 25))
            // Dentro dos primeiros ifs deve ser colocado um incremento a sua respectiva variavel
            // e caso ainda queira imprimir a linha a baixo também é necessário a utilizacao de chaves ({ })
			System.out.println("o numero está entre 0 e 25");

		else
			System.out.println("o numero não está entre 0 e 25");

		if ((i >= 26) && (i <= 50))

			System.out.println("o numero está entre 26 e 50");

		else 
			System.out.println("o numero não está entre 26 e 50");

		if ((i >= 51) && (i <= 75))

			System.out.println("o numero está entre 51 e 75");

		else 
			System.out.println("o numero não está entre 51 e 75");

		if ((i >= 75) && (i <= 100)) // O valor inicial do intervalo está errado pois ele já está includo no intervalo anterior

			System.out.println("o numero está entre 75 e 100");

		else 
			System.out.println("o numero não está entre 75 e 100");

            // A atribuição de novos valores para i deveria estar aqui

	}

   // Aqui devem ser exibidos os valores do somatorio que informam a quanditade de vezes que
   // um intervalo ocorreu

}

Vê ai o que tu consegue fazer se tiver mais duvidas é só postar aqui.

Criado 30 de março de 2012
Ultima resposta 30 de mar. de 2012
Respostas 1
Participantes 2