Java :: Aufgabe #3 :: Lösung #15
22 Lösungen
#3
Quersumme berechnen und ausgeben
Anfänger - Java
von Gustl
- 12.08.2012 um 14:49 Uhr
Schreiben sie ein Konsolenprogramm, das eine
ihre Quersumme berechnet und das Ergebnis wie folgt ausgibt:
int-zahl > 0 und < 10000 einliest, ihre Quersumme berechnet und das Ergebnis wie folgt ausgibt:
Konsolenausgabe:
Zahl eingeben (0-10000): 3698
Quersumme: 3 + 6 + 9 + 8 = 26
#15
von 0 (0 Punkte)
- 16.02.2019 um 10:11 Uhr
package de.exception.quersumme_3;
public class CrossSum {
/**
* Berechnet die Quersumme von arg.
*
* @param arg
* @return Die Quersumme aus arg
* @throws Exception
*/
public static int calculate(int arg) throws Exception {
if(arg < 0 || arg > 1000) {
throw new Exception("Parameter \"arg\" out of boundaries (0 - 1000), "+arg+" was given.");
}
int result = 0;
for(char c : Integer.toString(arg).toCharArray()) {
result += c - '0';
}
return result;
}
/**
* Berechnet die Quersumme von arg.
* Gibt anschließend einen String mit der Berechnung und dem Ergebnis zurück.
*
* @param arg
* @return Das Ergebnis und die Berechnung
*/
public static String calculate2(int arg) {
if(arg < 0 || arg > 1000) {
return "Parameter \"arg\" out of boundaries (0 - 1000), "+arg+" was given.";
}
int result = 0;
String output = "Quersumme: ";
for(char c : Integer.toString(arg).toCharArray()) {
output += c + " + ";
result += c - '0';
}
output = output.substring(0, output.length() - 2);
output += "= " + result;
return output;
}
}
package de.exception.quersumme_3;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class CrossSumTest {
@Test
void test_calculate() {
try {
assertEquals(1, CrossSum.calculate(10));
assertEquals(2, CrossSum.calculate(11));
assertEquals(13, CrossSum.calculate(58));
assertEquals(27, CrossSum.calculate(999));
assertThrows(Exception.class, ()->{CrossSum.calculate(-1);});
assertThrows(Exception.class, ()->{CrossSum.calculate(1001);});
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
@Test
void test_calculate2 () {
assertEquals("Quersumme: 1 + 0 = 1", CrossSum.calculate2(10));
assertEquals("Quersumme: 1 + 1 = 2", CrossSum.calculate2(11));
assertEquals("Quersumme: 5 + 8 = 13", CrossSum.calculate2(58));
assertEquals("Quersumme: 9 + 9 + 9 = 27", CrossSum.calculate2(999));
assertEquals("Parameter \"arg\" out of boundaries (0 - 1000), -1 was given.", CrossSum.calculate2(-1));
assertEquals("Parameter \"arg\" out of boundaries (0 - 1000), 1001 was given.", CrossSum.calculate2(1001));
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
