and also not with this one : cardNumber := '4539 1488 0343 6467'. oddSum := 0. evenSum := 0. nextIsOdd := false.     cardNumber reverseDo: [:digit |         digit = Character space ifFalse: [         nextIsOdd             ifFalse: [oddSum := oddSum + (digit asString asInteger ) ]             ifTrue: [(((digit asString asInteger) * 2) > 9)    ifTrue: [evenSum := evenSum + ((digit asString asInteger) * 2) - 9 ]    ifFalse: [ evenSum := evenSum + (digit asString asInteger) * 2 ]].            nextIsOdd := nextIsOdd not]]. ^ evenSum Op 30-4-2020 om 18:30 schreef Roelof Wobben:
Op 30-4-2020 om 16:16 schreef Roelof Wobben:
nextIsOdd := true.     aString reverseDo: [:digit |         digit = Character space ifFalse: [         nextIsOdd             ifTrue: [oddSum := ...]             ifFalse: [evenSum := ...].         nextIsOdd := nextIsOdd not]].
hmm,
Still no luck with this code :
cardNumber := '4539 1488 0343 6467'. oddSum := 0. evenSum := 0. nextIsOdd := true.     cardNumber reverseDo: [:digit |         digit = Character space ifFalse: [         nextIsOdd             ifTrue: [oddSum := oddSum + digit asInteger ]             ifFalse: [evenSum := ((digit asInteger * 2) > 9)    ifTrue: [evenSum + ((digit asInteger * 2) - 9) ]    ifFalse: [ evenSum + (digit asInteger * 2) ]].           nextIsOdd := nextIsOdd not]]. ^ oddSum + evenSum
the answer schould be 57 where I get 1157
So some debugging to do