Java :: Aufgabe #3 :: Lösung #15

22 Lösungen Lösungen öffentlich
#3

Quersumme berechnen und ausgeben

Anfänger - Java von Gustl - 12.08.2012 um 14:49 Uhr
Schreiben sie ein Konsolenprogramm, das eine 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
vote_ok
von Exception (7090 Punkte) - 16.02.2019 um 10:11 Uhr
Quellcode ausblenden Java-Code
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;
	}
	
}


Quellcode ausblenden Java-Code
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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben