Moin zusammen,
Hab zu übung mal ein sinnloses Programm zusammengecodet welches angibt an welcher Stelle der eingegebene Buchstabe im Alphabet zu finden ist. Das tut es auch, allerdings endlos.
Habe die Prozedur in der Klasse alphabet gekapselt:
Code:
public class alphabet {
public static void test(char[]usrinput) {
char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int i = 0;
while (i<27)
if (usrinput[0]==alphabet[i])
System.out.println("Der eingegebene Buchstabe ist der "+(i+1)+". im Alphabet!");
//break;
else
i++;
}
}
Die test-Methode wird aus der main-klasse folgenderweise aufgerufen:
Code:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
char[] usrinput;
System.out.println("Bitte geben sie einen Buchstaben ein: ");
usrinput = (input.readLine()).toCharArray();
alphabet.test(usrinput);
Wenn die erste Prüfung erfüllt ist soll er die Schleife eigentlich verlassen, stattdessen schreibt er sich tot. Wenn ich die break; anweisung nicht auskommentiere sagt er (eclipse) "else" wär ein fehlerhaftes token was ich löschen solle. Wie verlasse ich die schleife dann und warum ist sie endlos??
Wundern tut mich auch, dass die if oder while schleife in meiem buch ohne geschweifte Klammern definiert wird, auf verschiedenen webseiten und in meinem Gedächtnis sollte man diese allerdings benutzen.
Hab wahrscheinlich grad ein Brett vor'm Kopf, hoffe aber ihr könnt mir helfen.
mfg,
Mint