Hallo Community,
ich schreibe gerade ein keines Programm, welches die Prüfziffer einer ISBN-10 berechnet.
Laut Debugger gibt es in der Berechnung keine Fehler. Probleme macht lediglich die Umwandlung von int in char. char muss der return-Wert der Methode sein.
Hier der relevante Code:
In der Main-Methode: ist
, dann kommt auch wie gewollt
raus.
Ändert sich der Wert von
, so kommt irgend ein unbekanntes Sonderzeichen heraus, was ich mir nicht erklären kann. Es kann eigentlich nur bei der Methode
liegen, denn
liefert immer das richtige Ergebnis als int.
Könnt Ihr mir bitte einen Tipp geben, woran es liegt? Danke
ich schreibe gerade ein keines Programm, welches die Prüfziffer einer ISBN-10 berechnet.
Laut Debugger gibt es in der Berechnung keine Fehler. Probleme macht lediglich die Umwandlung von int in char. char muss der return-Wert der Methode sein.
Hier der relevante Code:
Java:
public class Main {
// 2a
static char inChar (int zahl) {
if (zahl == 10) {
return 'x';
} else {
return (char) zahl;
}
}
// 2b
static char prüfziffer (int zahl) {
final int länge = 9;
int wert[] = new int[länge];
// Zahl in Array einlesen
for (int i = (länge-1); i >= 0; i--) {
wert[i] = (zahl % 10);
zahl /= 10;
}
// Summe berechnen
int summe = 0;
int multiplikator = 10;
for (int i = 0; i <= länge-1; i++) {
summe += wert[i] * multiplikator--;
}
// Prüfsumme berechnen
int ergebnis = summe % 11;
ergebnis = 11 - ergebnis;
return inChar(ergebnis);
}
public static void main(String[] args) {
int zahl = 323456789;
System.out.println(prüfziffer(zahl));
}
}
In der Main-Methode: ist
Code:
int zahl = 123456789;
Code:
x
Ändert sich der Wert von
Code:
zahl
Code:
inChar
Code:
ergebnis
Könnt Ihr mir bitte einen Tipp geben, woran es liegt? Danke