Fórum Dúvida em if-else aninhadoss #623730

14/05/2025

0

Olá, saudações a todos.
Estou comn dificuldade neste código que pretende testar os 3 tipos de triângulo, porém ao rodár o programa, o resultado só mostra a última condição: 'Não forma um triângulo'.
Vocês poderiam me ajudar? Principalmente se puderem me passar links de aulas e exercícios sobre if aninhados ou encadeados.

Obrigado
- - - - - - - - - - - - - -
package sandra.puga;

import java.util.Scanner;

public class Puga_ex61
{
    public static void main(String[] args) {
        
    int a = 0;
    int b = 0;
    int c = 0;
    
      Scanner scanner = new Scanner(System.in);
      
      System.out.println
      ("Programa que avalia o tipo de triângulo");
     
      System.out.println("medida lado a");
      a = scanner.nextInt();
      
      System.out.println("medida lado b");
      a = scanner.nextInt();
      
      System.out.println("medida lado c");
      a = scanner.nextInt();
      
      if (a != 0 && b != 0 && c != 0){
      if (a + b > c && a + c > b && b + c > a){
      if (a != b && a != c && b != c){
      System.out.println("Triangulo escaleno");  
      }
      else
      {
      if (a == b && b == c)
          {
      System.out.println("Triangulo equilátero");  
      }
      else {
      System.out.println("Triângulo isósceles");  
      }
     }
    }  
      else{
           System.out.println("Não forma um triângulo");  
      }
      }
      else{
           System.out.println("Não forma um triângulo");  
       }
      }
    }
Job Silva

Job Silva

Responder

Posts

16/05/2025

Matheus Cotes

Olá Job! O problema do seu código está aqui:

System.out.println("medida lado b");
a = scanner.nextInt();

System.out.println("medida lado c");
a = scanner.nextInt();


Você está lendo todas as medidas nos mesmos lugares da variável a, ou seja, está sobrescrevendo o valor de a três vezes, e b e c continuam com valor 0.
Você precisa armazenar corretamente cada valor em sua respectiva variável (a, b e c). Veja a correção:

package sandra.puga;

import java.util.Scanner;

public class Puga_ex61
{
    public static void main(String[] args) {
         
        int a, b, c;
     
        Scanner scanner = new Scanner(System.in);
       
        System.out.println("Programa que avalia o tipo de triângulo");
      
        System.out.println("medida lado a:");
        a = scanner.nextInt();
       
        System.out.println("medida lado b:");
        b = scanner.nextInt();
       
        System.out.println("medida lado c:");
        c = scanner.nextInt();
       
        if (a != 0 && b != 0 && c != 0) {
            if (a + b > c && a + c > b && b + c > a) {
                if (a != b && a != c && b != c) {
                    System.out.println("Triângulo escaleno");  
                } else if (a == b && b == c) {
                    System.out.println("Triângulo equilátero");  
                } else {
                    System.out.println("Triângulo isósceles");  
                }
            } else {
                System.out.println("Não forma um triângulo");  
            }
        } else {
            System.out.println("Não forma um triângulo");  
        }

        scanner.close();
    }
}




O que eu mudei:

* Corrigi as leituras das variáveis b e c.

* Adicionei scanner.close(); no final para boas práticas.

* Usei else if para evitar verificações desnecessárias.

Espero ter ajudado.
Abraço!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar