(RESOLVIDO) Onde esse código está errado?

package ficha2terceiro;

import java.util.Scanner;

public class Ficha2terceiro {

public static void main(String[] args) {
      Scanner nota = new Scanner(System.in);
    double nota1, nota2, nota3, mediaTodas, mediaFinal;
    
    System.out.println("Digite a primeira Nota: ");
    nota1 = nota.nextDouble();
    System.out.println("Digite a segunda Nota: ");
    nota2 = nota.nextDouble();
    System.out.println("Digite a terceira Nota: ");
    nota3 = nota.nextDouble();
    mediaTodas = (nota1+nota2+nota3)/3;
    mediaFinal = (((nota1+nota2*2)+(nota3*3))+mediaTodas)/7;
    System.out.println("A média final do aluno é: " + mediaFinal);
    if (mediaFinal >= 9){
        System.out.println("Aluno conceito A");
    } else {
        if (mediaFinal >= 7.5 && <9){
        System.out.println("Aluno conceito B");
    } else {
        if (mediaFinal >= 6  && < 7.5){
        System.out.println("Aluno conceito C");
    } else {
        if (mediaFinal < 6){
        System.out.println("Aluno conceito D");
                     } else {
            
            
        }
        }
    }
        
    }

}

}
}

Acho que o código correto é esse…

Scanner nota = new Scanner(System.in);
double nota1, nota2, nota3, mediaTodas, mediaFinal;

    System.out.println("Digite a primeira Nota: ");
    nota1 = nota.nextDouble();
    System.out.println("Digite a segunda Nota: ");
    nota2 = nota.nextDouble();
    System.out.println("Digite a terceira Nota: ");
    nota3 = nota.nextDouble();
    mediaTodas = (nota1+nota2+nota3)/3;
    mediaFinal = (((nota1+nota2*2)+(nota3*3))+mediaTodas)/7;
    System.out.println("A média final do aluno é: " + mediaFinal);
    if (mediaFinal >= 9){
        System.out.println("Aluno conceito A");
    } else {
        if (mediaFinal >= 7.5 && mediaFinal <9){
            System.out.println("Aluno conceito B");
        } else {
            if (mediaFinal >= 6  && mediaFinal < 7.5){
                System.out.println("Aluno conceito C");
            } else {
                if (mediaFinal < 6){
                    System.out.println("Aluno conceito D");
                } else {


                }
            }
        }

    }

}
}

Ou seja você tem varias condições “if” exemplo if (mediaFinal >= 7.5 && <9)
O correto seria você comparar a variável mediaFinal após o operador lógico && ficando
if (mediaFinal >= 7.5 && mediaFinal < 9 )

mas teste o código aí.

1 curtida

Será que da forma abaixo não fica mais legível?

if (mediaFinal >= 9) {
    System.out.println("Aluno conceito A");
} else if (mediaFinal >= 7.5) {
    System.out.println("Aluno conceito B");
} else if (mediaFinal >= 6) {
    System.out.println("Aluno conceito C");
} else {
    System.out.println("Aluno conceito D");
}
1 curtida