C# Schleifen

kokiman

Lt. Commander
Registriert
Juni 2010
Beiträge
1.815
Code:
int sum = 0; int i = 0;
while (i < nr.Length)
{
sum = sum + (nr[i++] - '0') * 7; // 0 wegen Ascii
sum = sum + (nr[i++] - '0') * 3;
sum = sum + (nr[i++] - '0') * 1;
}
sum = sum % 10

Das wäre die Grundschleife, jetzt muss aber noch beachtet werden, dass auch Buchstaben vorkommen können und diese eben umgewandelt werden sollen. Muss ich jetzt für jedes sum = sum ... eine if schleife drum machen? Geht das überhaupt?

Code:
 if (nr[i] >= 65 && nr[i] <= 'z')
sum = sum + (nr[i++] - 55) * 7;
else if (nr[i] >= '0' && nr[i] <= '9')
sum = sum + (nr[i++] - '0') * 7;
 
Zuletzt bearbeitet:
Füge eine Methode hinzu, die jeden Wert vor der Berechnung überprüft und bei bei Bedarf korrigiert, etwa so:
Code:
{

...

int sum = 0; int i = 0;
while (i < nr.Length)
{
sum = sum + (correctValue(nr[i++]) - '0') * 7; // 0 wegen Ascii
sum = sum + (correctValue(nr[i++]) - '0') * 3;
sum = sum + (correctValue(nr[i++]) - '0') * 1;
}
sum = sum % 10

...

}

int  correctValue(int valueToCorrect)
{
 if (valueToCorrect >= 65 && valueToCorrect <= 'z')
return (valueToCorrect - 55);

return valueToCorrect;
}
 
Zuletzt bearbeitet:
Es wäre schön, wenn für Code die Code-Tags verwendet werden.
Warum wird auf Buchstaben geprüft?
 
Zuletzt bearbeitet:
Zurück
Oben