Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Mi propuesta de solución...

import java.util.InputMismatchException;
import java.util.Scanner;

public class Triangle {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int side1;
        int side2;
        int side3;
        String opt = "0";

        showHeader();

        do {
            System.out.print("\n* Ingrese el primer lado: ");
            try {
                side1 = scanner.nextInt();
                System.out.print("* Ingrese el segundo lado: ");
                side2 = scanner.nextInt();
                System.out.print("* Ingrese el tercer lado: ");
                side3 = scanner.nextInt();
                System.out.println(
                        canFormTriangle(side1, side2, side3)
                                ? "\nLos lados pueden formar un triángulo.\n"
                                : "\nLos lados no pueden formar un triángulo.\n"
                );

                System.out.print("Para terminar digite 0 o cualquier tecla para calcular otro triángulo: ");
                opt = scanner.next();
            } catch (InputMismatchException _) {
                System.out.println("\n¡Ingrese un valor válido, intenta de nuevo!\n");
                scanner.nextLine();
            }
        } while (!opt.equals("0"));

        System.out.println("\nClosing app... Thanks for using our service");

        scanner.close();
    }

    private static boolean canFormTriangle(int l1, int l2, int l3) {
        return l1 + l2 > l3 && l1 + l3 > l2 && l2 + l3 > l1;
    }

    private static void showHeader() {
        System.out.print("""
                
                *******************************
                    Welcome to triangle app
                *******************************
                """);
    }
}
1 respuesta

Hola Wilmar, espero que estés bien

Tu propuesta de solución para verificar si tres lados pueden formar un triángulo parece estar bien estructurada y cumple con la condición necesaria para formar un triángulo: la suma de dos lados debe ser mayor que el tercer lado. Has implementado esta lógica correctamente en el método canFormTriangle.

Aquí hay algunos puntos que podrías considerar para mejorar o ajustar tu código:

  1. Validación de entrada: Aunque ya manejas excepciones con InputMismatchException, podrías considerar agregar validaciones adicionales para asegurarte de que los lados ingresados sean positivos, ya que un lado de longitud cero o negativa no tiene sentido en un triángulo.

  2. Claridad en el mensaje de salida: Podrías mejorar la claridad del mensaje de salida final, por ejemplo, indicando que la aplicación se está cerrando de manera más amigable.

  3. Formato de salida: Si deseas que la salida sea más clara, podrías considerar usar System.out.println en lugar de System.out.print para el encabezado, para que el formato sea más consistente.

Tu código ya está bastante bien, pero estos pequeños ajustes podrían mejorar la experiencia del usuario y la robustez del programa. Espero que estas sugerencias te sean útiles.

¡Espero haber ayudado y buenos estudios!