Dúvida em if-else aninhadoss
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
- - - - - - - - - - - - - -
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
Curtidas 1
Respostas
Matheus Cotes
14/05/2025
Olá Job! O problema do seu código está aqui:
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:
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!
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!
GOSTEI 0