Römische Zahlen umwandeln

sterntv

Mitglied
Hallo, zusammen, vielleicht kann mir einer von euch helfen. Mein Programm funktioniert nur bei der Fehlerbehandlung muss ich noch was machen und zwar wenn ich z.B. XXX eingebe, soll eine Fehlermeldung ausgegeben werden. Hier mein Code
Java:
import AlgoTools.IO;

public class Aufg2_3 {

	public static void main(String[] args) {

		// uebergangsfunktion definieren
		int[][] u_funk = { { 1, 2, 3, -1, -1, 6, 7, 8, -1, -1, -1, -1 },
						   { 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
				           { 10, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 } };

		final int I_i = 0; // Eingabealphabet
		final int V_v = 1;
		final int X_x = 2;
		int s = 0;
		char[] r_zahl;
		int i;
		

		
		r_zahl = IO.readChars("Geben Sie eine römische Zahl von I bis X ein: ");
		
			for (i = 0; i < r_zahl.length; i++) {
				
				switch (r_zahl[i]) {
				case 'I': case 'i':
					s = u_funk[I_i][s];break;
				case 'V': case 'v':
					s = u_funk[V_v][s]; break;
				case 'X': case 'x':
					s = u_funk[X_x][s]; break;
				default:
					IO.println("Falsche Zahl!");
					System.exit(0);
				}
			}
		
		if (s == -1)
			IO.println("Fehler! Bitte nur römische Zahlen von I bis X eingeben!");
		
		else
			IO.println(s);
	}
}
 
Wie kann ich die Grenzen von meinem Array überwachen, wenn ich mit der Eigabe über die Grenzen liege, soll eine Fehlermeldung ausgegeben werden.
 
Meine Eingabe erlaubt Klein- und Großschreibung. Muss beide akzeptieren egal ob x oder X, nur wenn ich wie gesagt über die Grenzen von Array gehe, soll eine Fehlermeldung ausgegeben werden.
 
Die Grenze deines Arrays wird von IO.readChars gesetzt. Das Array ist also so groß wie Eingaben erfolgten.
 
Es sollen Zahlen von I bis X akzeptiert werden.

Dann verstehe ich den Programm nicht, da du eine Schleife über die gesamte Eingabe gemacht hast. Wenn du nur 1 Zeichen auswerten willst, dann werte halt nur r_zahl[0] aus und gib eine Fehlermeldung aus, wenn mahr als ein Zeichen eingegeben wurde
 

Neue Themen


Zurück
Oben