Hab den Code nochmals angepasst, das Ergebnis ist immer korrekt, unabhängig davon, was für Zahlen eingegeben werden. Dennoch wird die letzte Bedingung nicht erfüllt. Woran liegt das?
package de.codegym.task.task04.task0409;
/*
Am nächsten an 10
*/
public class Solution {
public static void main(String[] args) {
naechsteAnZehnAnzeigen(8, 11);
naechsteAnZehnAnzeigen(7, 14);
}
public static void naechsteAnZehnAnzeigen(int a, int b) {
/*
Deklarierung / Initialisierung von zwei Differenzvariablen
*/
int diffA = 0;
int diffB = 0;
/*
Prüfung, welche Zahl näher an 10 liegt
*/
if (a < 0) {
diffA = 10 + abs(a);
} else if (a == 0) {
diffA = 10 - abs(a);
} else if (a > 0 && a <= 10) {
diffA = 10 - abs(a);
} else if (a > 10) {
diffA = a - 10;
}
if (b < 0) {
diffB = 10 + abs(b);
} else if (b == 0) {
diffB = 10 - abs(b);
} else if (b > 0 && b <= 10) {
diffB = 10 - abs(b);
} else if (b > 10) {
diffB = b -10;
}
if (diffA < diffB) {
System.out.println(a);
} else if (diffA > diffB) {
System.out.println(b);
} else if (diffA == diffB) {
System.out.println(a);
}
}
public static int abs(int a) {
if (a < 0) {
return -a;
} else {
return a;
}
}
}