Alunos reprovado e Alunos Aprovados

package Aulas;
import java.util.Scanner;
public class Aulas_23{
public static void main(String[]args){
Scanner input = new Scanner(System.in);
int num = 5;
int media = 7;
double[]notas = new double[5];
for(int i=0;notas.length>i;i++){
System.out.println(" INSIRA A NOTA DO ALUNO " + (i+1)+ "°");
notas[i]=input.nextDouble();
if(notas.length>media){
System.out.println("Alunos aprovado");
}else{
System.out.println("Alunos Reprovados");
    
}

}
    
}

}

Aqui era para o programa me fala que tava aprovado e quem tava Reprovado, mas em todas as ocasiões só da reprovado, no que estou errando?

Essa condição sempre vai retornar false.

Você está comparando errado. notas.length() vai retornar o TAMANHO do array notas. O que você precisa é comparar o CONTEÚDO DE CADA POSIÇÃO. Ficou fácil agora, né?

Aproveita e arruma o português nessa parte. Dica: use o singular.
[]'s

Seja mais claro.

Se eu for mais claro, eu faço o código para você. Tá bem explicado, é só fazer.

Eu não intendi!

Vamos lá, passo a passo.


Esse é o trecho de código que está errado. O comando “if” serve para COMPARAR uma condição. A sua condição está dizendo:

Se o tamanho do array notas (notas.length) for maior que o valor “media”, escreva “Alunos aprovado”. Se não, escreva “Alunos reprovados”.

Você compreende que essa comparação só pode dar dois resultados? Ou é verdadeiro (true) e o aluno é aprovado, ou é falso (false) e o aluno é reprovado, certo?

Sempre vai ser false nesse caso, pois você está comparando o tamanho do array (5) com a média (7).

Cinco é maior que sete? Falso. Aluno Reprovado.

O que você precisa é arrumar o seu código de comparação. Você não deve comparar o TAMANHO do array, e sim o conteúdo de cada posição. Simples assim!


E sobre o português: Como você exibe o resultado na hora do input da nota, você está tratando sempre de uma pessoa só. Por isso o uso do singular, e não do plural.

Que elegância para ensinar, gostei. kkkkkkkkkk

Obrigado. Gosto de ensinar.

Mas o mais importante é: conseguiu entender?

Agora eu intendi, você é formado em java? Java é bom, mas é bem difícil.

A curva de aprendizado no Java é bem complicada, mesmo.

Não existe em si uma “formação em Java”. Evidentemente eu fiz alguns cursos, e existem as certificações da própria Oracle. Mas eu trabalho com Java profissionalmente, sim.

Tudo é bem situacional. Java, sem dúvida nenhuma, é uma ótima linguagem. Mas não se esqueça: Linguagens são como ferramentas. Você usaria uma marreta para parafusar algo? Você usaria um alicate para serrar uma tábua? Não, né?

Existem ferramentas para cada situação. Assim como existem linguagens para cada situação. Leve isso para seu aprendizado, e evite de cometer o erro de ser o cara que defende que “minha linguagem é superior a todas as outras”.

Um abraço e bons estudos!

1 curtida

Eu sonho em um dia trabalhar com java, mas aqui na minha cidade não tem espaço para esse profissional, assim as vezes eu penso que estou pendendo tempo.

Você pode começar um projeto hoje mesmo. Que tal tentar colocar metas de estudo, e assim evoluir com seu aprendizado na linguagem?

É tudo uma questão de ponto de vista. Se você quer sair da região, comece a estudar oportunidades e mete a cara no mundão (:

obrigado.

package Aulas;
import java.util.Scanner;
public class Aulas_23{
public static void main(String[]args){
Scanner input = new Scanner(System.in);
int num = 5;
int media = 7;
double[]notas = new double[5];
for(int i=0;notas.length>i;i++){
System.out.println(" INSIRA A NOTA DO ALUNO " + (i+1)+ "°");
notas[i]=input.nextDouble();
if(notas[i]>media){
System.out.println("Alunos aprovado");
}else{
System.out.println("Alunos Reprovados");
    
}

}
    
}

}

Agora deu certo.

 package Aulas;
import java.util.Scanner;
public class Aulas_23{
public static void main(String[]args){
Scanner input = new Scanner(System.in);
int num = 5;
int media = 7;
double[]notas = new double[5];
for(int i=0;notas.length>i;i++){
System.out.println(" INSIRA A NOTA DO ALUNO " + (i+1)+ "°");
notas[i]=input.nextDouble();
if(notas[i]>media){
System.out.println("Alunos aprovado");
}else{
System.out.println("Alunos Reprovado");
    
}

}
    
}

}

A variável notas contém as notas de um único aluno ou as médias de vários alunos?

Que belo conselho @FearX :clap:

1 curtida