Hallo bmxruler,
wir reden wohl schrecklich weit aneinander vorbei. Bzw. deine Arbeit lenkt dich zu sehr ab? In dem Fall warte bis Feierabend und guck es Dir in Ruhe an.
Dieser Code:
control_digit = last_digit;
if (parseInt(last_digit) + 3 >= 10) {
tmp = parseInt(control_digit) + 3;
control_digit = parseInt(tmp) % 10;
}
addiert 3 auf die letzte Stelle und entfernt den 10-er Übertrag. Dann und nur dann, wenn die letzte Stelle 7,8 oder 9 ist.
Du willst aber auch dann 3 auf die letzte Stelle addieren, wenn sie 0,1,2,3,4,5 oder 6 ist. Deine Lösung war, einen else hinzuzufügen und den Code aus dem THEN-Teil dahin zu kopieren. Das Entfernen des Übertrags mittels % 10
ist dann zwar überflüssig, schadet aber auch nicht.
Was ich Dir aber die ganze Zeit sagen will, ist: DER IF IST UNNÖTIG (und die zugehörigen geschweiften Klammern natürlich auch). Wenn im THEN und ELSE Teil der gleiche Code ausgeführt wird, ist der IF überflüssig. Der folgende Code addiert auf jede Ziffer von 0-9 3 auf und entfernt einen eventuell entstandenen Zehner-Übertrag. Der zweite parseInt ist auch unnötig. Es ist ja schon ein int.
control_digit = last_digit;
tmp = parseInt(control_digit) + 3;
control_digit = tmp % 10;
Rolf
sumpsi - posui - clusi