Die Lösung funktioniert mit positiven und negativen Zahlen, dennoch ist der letzte Punkt nicht erfüllt. Es erscheint die Meldung: Aufgabenanforderungen wurden nicht erfüllt
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 der Variablen
*/
int diffA = 0;
int diffB = 0;
int first = a;
int second = b;
/*
Ermittlung der Differenz zu 10 beider Zahlen
*/
if (first < 0) {
diffA = 10 + abs(a);
} else if (first == 0) {
diffA = 10 - abs(a);
} else if (first > 0 && first <= 10) {
diffA = 10 - abs(a);
} else if (first > 10) {
diffA = abs(a) - 10;
}
if (second < 0) {
diffB = 10 + abs(b);
} else if (second == 0) {
diffB = 10 - abs(b);
} else if (second > 0 && second <= 10) {
diffB = 10 - abs(b);
} else if (second > 10) {
diffB = abs(b) - 10;
}
//System.out.println(first);
//System.out.println(second);
//System.out.println(diffA);
//System.out.println(diffB);
/*
Prüfung, welche Zahl näher an 10 liegt
*/
if (diffA < diffB) {
System.out.println(first);
} else if (diffA > diffB) {
System.out.println(second);
} else if (diffA == diffB) {
System.out.println(first);
}
}
public static int abs(int a) {
if (a < 0) {
return -a;
} else {
return a;
}
}
}