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??
[code]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");
}
}[/code]
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.
[code]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
}[/code]
Vê ai o que tu consegue fazer se tiver mais duvidas é só postar aqui.