1
resposta

Alguém poderia me explicar a lógica desse programa,continuo errando

Gostaria de saber a logica desse programa como eu faço com a estrutura de decisão encadeada. ( if – else – if) que continuo errando,com 4 e 5 ou mais numeros package Aula9e10;

Fiz desse jeito para ler 4 numeros e saber qual o maior e dá errado quando coloco os numeros nessa ordem 4,5,1,6 ,o compilador diz que o quatro é o maior

    import java.util.Scanner;

    public class Ex6 {

        public static void main(String[] args) {
            Scanner ler = new Scanner(System.in);
            int v1, v2, v3,v4;
            System.out.println("Digite o numero");
            v1 = ler.nextInt();
            System.out.println("Digite o numero");
            v2 = ler.nextInt();
            System.out.println("Digite o numero");
            v3 = ler.nextInt();
            System.out.println("Digite o numero");
            v4=ler.nextInt();


            if(v1>v2) {
                if(v1>v3)
                    if(v1>v4)  
                    System.out.println("O maior é" +v1);
                else
                    System.out.println("O maior é"+v3);
                else
                    System.out.println("O maior é"+ v4);
        }    else if(v3>v4) 
                 if(v3>v2)
                     if(v3>v1)
                System.out.println("O maior é" +v3);
            else
                System.out.println("O maior é"+v4);
        else
            System.out.println("O maior é"+ v2);
        else
            System.out.println("O maior é" + v1);
        if(v2>v4)
                if (v2>v3)
                    if(v2>v1)
                        System.out.println("O maior é" + v2);
                    else
                        System.out.println("O maior é "+ v3);
                else
                    System.out.println("O maior é "+ v1);

            ler.close();
        }}
1 resposta

Com esse número na parte do "else if(v3>v4)" você está usando o else dele errado Ele está indo direto para esse else

else
    System.out.println("O maior é" + v1);

e não faz as outras verificações.

Recomendo que você coloque o { } nos if para não ficar gerando essa confusão.