Repetição controlada por contador - while

Olá!
Poderia me explicar detalhadamente o código seguinte:

[code] int total;
int gradeCounter;
int grade;
int average;

       //fase de inicialização
       total = 0;
       gradeCounter = 1;
       
       //fase de processamento
      while(gradeCounter <= 10)

{
System.out.print(“Enter grade:”);
grade = input.nextInt();
total = total + grade;
gradeCounter = gradeCounter +1;

}
[/code]

Principalmente a fase de inicialização.

Precisa identar melhor o código hein…

[code]
// declara uma variável do tipo int chamada total
int total;
// declara uma variável do tipo int chamada gradeCounter
int gradeCounter;
// declara uma variável do tipo int chamada grade
int grade;
// declara uma variável do tipo int chamada avarage
int average;

// essa inicialização se faz necessária, visto que esse código está dentro
// de um método não é? variáveis locais não recebem um valor padrão.

//fase de inicialização
// inicializa a variável total com o valor 0
total = 0;
// inicializa a variável gradeCounter com o valor 1
gradeCounter = 1;

//fase de processamento
// enquanto gradeCounter for menor ou igual a 10
while(gradeCounter <= 10) {
// pede p/ entrar com a nota
System.out.print(“Enter grade:”);
// entra com a nota (input deve ser um Scanner, estou certo?)
grade = input.nextInt();
// acumula a nota fornecida em total
total = total + grade;
// conta mais um em gradeCounter
gradeCounter = gradeCounter +1;
}

// aqui deve ser calculado o valor da média
avarage = total / (gradeCounter - 1);(avarage)[/code]

Eu inicializaria gradeCounter com 0 e iria até < 10 no while, ai no final do while vc teria gradeCounter com a quantidade correta de notas, ou seja, 10, ao contrário do que está acontecendo agora, onde gradeCounter fica com o valor 11.

[]'s

Obrigado David!
Mas veja, por que tenho que fazer esse procedimento:

gradeCounter = gradeCounter +1;
e…
total = 0;
gradeCounter = 1;

você pega a gradeCounter e soma ela com mais um.
ou seja.
ele é um contador.
para sair do loop.
já que while é enquanto.
então enquanto gradeCounter for menor a 10 ele vai continuar fazendo.
se vc deixar o gradeCounter = 1
ele entra em loop infinito.

o total = 0 e o gradeCounter = 1
é para inicializar o valor da variavel.
pois senão fica sem valor.
como vc vai somar
gradeCounter = gradeCounter + 1
se vc nao sabe o valor do gradeCounter inicialmente?
é impossivel.
e o mesmo para o total.

[quote=hackum]Obrigado David!
Mas veja, por que tenho que fazer esse procedimento:

gradeCounter = gradeCounter +1;
e…
total = 0;
gradeCounter = 1; [/quote]

gradeCounter = gradeCounter+1;

Se você não fizer isso dentro da sua estrutura de repetição, o código entrará em loop infinito…

total = 0;
gradeCounter = 1;

Aqui como o davidbuzato explicou, as variáveis dentro de um método precisam ser inicializadas, caso contrário, o código não vai compilar…

[]´s