O que esta errado no meu codigo[RESOLVIDO]

7 respostas
firebloods

Amigos este e meu primeiro post se eu estiver fazendo algo de errado por favor me corrigam.

Bom o problema e o seguinte.

Digitar 4 notas, tirar a media aritmetica e se a media for maior ou igual a 5 dizer que o aluno foi aprovado e mostrar a media usando o for.
Meu codigo esta assim

import javax.swing.JOptionPane;

public class media_ar {
public static void main(String[] args) {
int nota, media, soma = 0, i;
  for (i = 1; i <= 4; i++){
      nota = Integer.parseInt(JOptionPane.showInputDialog("Digite a nota da "+i+"º Prova"));
  if ((nota >= 0) && (nota <= 10)){
      soma = soma + nota;
  else
      JOptionPane.showMessageDialog(null,"Nota Invalida digite notas de 0 a 10");
      i = i-1;
      }
      media = nota / 4;
      {
   if (media >= 5)
     JOptionPane.showMessageDialog(null,"Aluno aprovado Media ="+media);
   else
     JOptionPane.showMessageDialog(null,"Aluno reprovado Media ="+media);
    }
   }
  }
 }

so que não esta funcionando na hora da conpilação da erro no else do primeiro if, ja tentei de todas as formas arrumar mas não estou conseguindo,
sendo assim aqui estou pedindo a ajuda dos senhores.

Desde ja agradeço.

7 Respostas

Andre_Rosa

Poste a mensagem de erro emitida pelo compilador.

mauricionarcizo

o que é esse “0,i”??

int nota, media, soma = 0, i;
luis_serra

O que acontece é quando você for usar o if e abrir chaves tem que fechar antes do else, senão ele não irá funcionar.
falto também você iniciar a variável nota já que ela irá fazer um soma.
você também errou, ali seria media=soma/4; e não media=nota/4(Senão pegaria a ultima nota igual do for).
E faltou também abrir a chave else (Ela tem duas linhas, se não abrir chaves seria como tivesse apenas uma e daria erro).
Então ficou assim:

import javax.swing.JOptionPane;  
  
public class media_ar {  
  
    public static void main(String[] args) {  
    int nota = 0, media, soma = 0, i;  
        for (i = 1; i <= 4; i++){  
        nota = Integer.parseInt(JOptionPane.showInputDialog("Digite a nota da "+i+"º Prova"));  
            if ((nota >= 0) && (nota <= 10)){  
                soma = soma + nota; } 
            else {
                JOptionPane.showMessageDialog(null,"Nota Invalida digite notas de 0 a 10");  
                i = i-1;
            }//Fim do else
        }//Fim do For  
    media = soma / 4;  
  
    if (media >= 5)  
        JOptionPane.showMessageDialog(null,"Aluno aprovado Media ="+media);  
    else  
        JOptionPane.showMessageDialog(null,"Aluno reprovado Media ="+media);  
    }//Fim do main  
 }//Fim da Classe media_ar
jefftrindade

Fala firebloods:

De cara, já dá pra ver algumas inconsistências na sintaxe.
Logo no primeiro if, vc está abrindo o colchete (iniciando o bloco if) iniciando uma linha de comando e logo após está chamando um else, sem fechar o bloco if.

if ((nota >= 0) && (nota <= 10)){  
      soma = soma + nota;  
  else

A estrutura do if funciona da seguinte maneira, ou você abre e fecha o bloco, inserindo várias linhas de comando:

if (condição){
    //linhas de comando
} else{
    //linhas de comando
}

Ou você não abre o colchete, fazendo com que o compilador entenda que apenas uma linha de código será executada, se a condição for verdadeira, ex:

if(condicao)
    //linha de comando
else
    //linha de comando

Reveja esses conceitos de sintaxe e tente compilar novamente.

Espero ter ajudado :slight_smile: , abçs e seja bem vindo.

firebloods
Caro Amigo (mauricionarcizo) esse (o que é esse 0,i”??) o 0 e que eu estava iniciando a variavel soma e o i e meu contador para o for;

Caro (luis_serra) você foi corretissimo com a correção do codigo agradeço imensamente e tambem ao amigo (jefftrindade.) suas dicas tambem foram cruciais,

agradeço tambem ao amigo (Andre Rosa)

Novamente agradeço e peço que tenham um pouco de paciêcia por que no começo parece que tudo ta escrito em japones mais com a ajuda dos senhores espero conseguir traduzir.

Sds

Anderson.

jefftrindade
<blockquote><div class="quote-author">firebloods:</div>Caro Amigo (mauricionarcizo) esse (o que é esse “0,i”??) o 0 e que eu estava iniciando a variavel soma e o i e meu contador para o for;

Caro (luis_serra) você foi corretissimo com a correção do codigo agradeço imensamente e tambem ao amigo (jefftrindade.) suas dicas tambem foram cruciais,

agradeço tambem ao amigo (Andre Rosa)

Novamente agradeço e peço que tenham um pouco de paciêcia por que no começo parece que tudo ta escrito em japones mais com a ajuda dos senhores espero conseguir traduzir.

Sds

Anderson.

Estamos aí!
Não importa a velocidade, importa é evoluir sempre!

luis_serra
<blockquote><div class="quote-author">jefftrindade.:</div><blockquote><div class="quote-author">firebloods:</div>Caro Amigo (mauricionarcizo) esse (o que é esse “0,i”??) o 0 e que eu estava iniciando a variavel soma e o i e meu contador para o for;

Caro (luis_serra) você foi corretissimo com a correção do codigo agradeço imensamente e tambem ao amigo (jefftrindade.) suas dicas tambem foram cruciais,

agradeço tambem ao amigo (Andre Rosa)

Novamente agradeço e peço que tenham um pouco de paciêcia por que no começo parece que tudo ta escrito em japones mais com a ajuda dos senhores espero conseguir traduzir.

Sds

Anderson.

Estamos aí!
Não importa a velocidade, importa é evoluir sempre!

Como disse o Amigo acima, estamos aí, eu também preciso muito de ajudas, assim agente vai longe, abraços amigo, bons estudos.

Criado 24 de agosto de 2011
Ultima resposta 24 de ago. de 2011
Respostas 7
Participantes 5