import Foundation
/* Zu Beginn werden die drei Variablen für den Multiplikator, den Multiplikanden
und für das Produkt, mit den entsprechenden Bezeichnungen, deklariert.*/
var multiplikator : Int
var multiplikand : Int
var produkt : Int
print("Geben Sie den Multiplikator / ersten Faktor an:")
multiplikator = Int(readLine()!)!
print("Geben Sie den Multiplikand / zweiten Faktor an:")
multiplikand = Int(readLine()!)!
// Der Startwert der Variablen produkt wird auf null gesetzt.
produkt = 0
while multiplikator > 0 {
/* In der Fallunterscheidung wird geprüft, ob der Multiplikator ungerade
oder gerade ist. Dies erfolgt mithilfe der Modulo Funktion, es wird dabei
Multiplikator Modulo 2 berechnet. Im Fall, dass das Ergebnis 1 ist, ist
der Multiplikator eine ungerade Zahl, wenn das Ergebnis 0 ist, dann ist
der Multiplikator eine gerade Zahl. Die Modulo Berechnung kann hier als
Ergebnis nur 0 oder 1 haben. */
if multiplikator % 2 == 1 {
/* Wenn der aktuelle Multiplikator ungerade ist, wird zu dem Produkt der
Wert des aktuellen Multiplikanden dazu addiert. Da sich die beiden
Werte, also der Multiplikator und der Multiplikand, im weiteren
Verlauf des Programmes verändern können, ist es hier wichtig darauf
hinzuweisen, dass es sich, um die aktuellen Werte handelt.*/
produkt = produkt + multiplikand
}
// Der Multiplikator wird durch 2 geteilt.
multiplikator = Double(multiplikator) / 2
// Der Multiplikand wird mit 2 multipliziert.
multiplikand = multiplikand * 2
}
print(produkt)