You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TriangleChecker.java 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import java.util.Scanner;
  2. public class TriangleChecker {
  3. public enum TriangleType {
  4. NONE,
  5. NORMAL,
  6. ISOSCELES, // Gleichschenklig
  7. EQUILATERAL // Gleichseitig
  8. }
  9. public static void main(String[] args) {
  10. Scanner s = new Scanner(System.in);
  11. System.out.println("Geben Sie die Seitenlängen ein.");
  12. float a = enterFloat(s, "a: ");
  13. float b = enterFloat(s, "b: ");
  14. float c = enterFloat(s, "c: ");
  15. s.close();
  16. printAnalysis(a, b, c);
  17. }
  18. // Eingabe einer Seitenlänge
  19. private static float enterFloat(Scanner s, String prompt) {
  20. System.out.print(prompt);
  21. return s.nextFloat();
  22. }
  23. // Ausgabe der ermittelten Dreiecksart
  24. private static void printAnalysis(float a, float b, float c) {
  25. TriangleType type = checkTriangle(a, b, c);
  26. switch (type) {
  27. case NONE:
  28. System.out.println("Kein Dreieck");
  29. break;
  30. case NORMAL:
  31. System.out.println("Dreieck");
  32. break;
  33. case ISOSCELES:
  34. System.out.println("Gleichschenkliges Dreieck");
  35. break;
  36. case EQUILATERAL:
  37. System.out.println("Gleichseitiges Dreieck");
  38. break;
  39. }
  40. }
  41. // Analyse der Dreiecksart
  42. public static TriangleType checkTriangle(float a, float b, float c) {
  43. if (a <= 0 || b <= 0 || c <= 0 || a + b < c || a + c < b || b + c < a)
  44. // kein Dreieck
  45. return TriangleType.NONE;
  46. if (a + b > c || a + c > b || b + c > a) {
  47. // gleichseitiges Dreieck
  48. if (a == b && b == c) {
  49. return TriangleType.EQUILATERAL;
  50. }
  51. if (a == b || b == c || a == c) {
  52. // gleichschenkliges Dreieck
  53. return TriangleType.ISOSCELES;
  54. }
  55. // normales Dreieck
  56. return TriangleType.NORMAL;
  57. }
  58. // kein Dreieck
  59. return TriangleType.NONE;
  60. }
  61. }