Implementação do While

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.