import Foundation
/* Für die Zahl, von der die Quersumme berechnet, werden soll, wird die
Variable zahl deklariert.*/
var zahl : Int
/* Für das Ergebnis und Zwischenwerte der Quersumme wird die Variable
quersumme deklariert.*/
var quersumme : Int
/* Die Variable r ist eine Hilfsvariable, die dazu dient, die einzelnen Ziffern
der mehrstelligen Zahl zwischenzuspeichern.*/
var r : Int
/* Eine Zahl, die kleiner als 10 ist, entspricht bereits ihrer Quersumme. Zum
Beispiel die Zahl 5 hat die Quersumme 5. Daher wird hier nach einer Zahl
gefragt, die größer als 10 ist. */
print("Geben Sie ein Zahl, die größer als 10 ist, ein: ")
zahl = Int(readLine()!)!
/* Es ist auch möglich, Quersummen von negativen Zahlen zu berechnen. Dazu wird
hier die boolesche Variable negativ deklariert und mit dem Wert false
initialisiert. */
var negativ : Boolean
negativ = false
/* In der Fallunterscheidung wird geprüft, ob die eingegebene Zahl kleiner als
0 ist, falls ja, wird der Wert der Variable negativ auf true gesetzt und die
eingegebene Zahl mit -1 multipliziert. Die Zahl ist dann positiv, nach der
Berechnung der Quersumme wird das Ergebnis später wieder mit -1 multipliziert.*/
if zahl < 0 {
negativ = true
zahl = zahl * -1
}
if zahl > 10 {
quersumme = 0
while zahl > 0 {
/* Mithilfe der Modulo Funktion (MOD) kann die letzte Stelle der Zahl
abgeschnitten werden.*/
r = zahl % 10
// Die Zahl wird jetzt durch 10 geteilt.
zahl = Double(zahl) / 10
quersumme = quersumme + r
}
} else {
/* Wenn die Zahl kleiner als 10 ist, entspricht die Zahl der Quersumme.
Daher ist keine weitere Rechnung nötig. */
quersumme = zahl
}
print("Die Quersumme der gebenen Zahl ist: ")
/* Hier wird geprüft, ob die ursprünglich Zahl negativ war, falls ja, wird die
berechnete Quersumme mit -1 multipliziert. */
if negativ {
quersumme = quersumme * -1
}
print(quersumme)