Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
10.10.10, 21:20
|
#1
|
Ist öfter hier
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
|
[Java] - Problem mit if und while Schleife
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
__________________
Zitat:
Zitat von John Lennon
Musik gehört allen. Nur die Plattenfirmen denken, dass man sie besitzen kann.
|
|
|
|
10.10.10, 21:36
|
#2
|
Ist öfter hier
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
|
omg....
omg ich sags ja, Brett vorm Kopf
Hab's folgendermaßen gefixt:
Code:
public class alphabet {
/*public 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!");
i=27; //oder auch break;
}
else
i++;
Das mit den Klammern hat sich also auch erledigt.
@mods: Kann gelöscht oder für andere Leute die auch ein Brett vorm kopf haben gelassen werden
mfg, Mint
__________________
Zitat:
Zitat von John Lennon
Musik gehört allen. Nur die Plattenfirmen denken, dass man sie besitzen kann.
|
|
|
|
10.10.10, 21:42
|
#3
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
1. Java-Syntax lernen... d.h. Klammern "{" "}" etc.
2. Wenn eine passende Stelle gefunden wird, dann wird das else NIE erreicht.
Korrekt (auf die schnelle):
while (i<27) {
if (usrinput[0]==alphabet[i]) {
System.out.println("Der eingegebene Buchstabe ist der "+(i+1)+". im Alphabet!");
i++; // So findet er alle Buchstaben
// break; <--- So nur den ersten!
} else
i++;
}
Statt "27" solltest Du auch char[].length verwenden.
Sollte so klappen.
Grüße
Onkel PornoPenner
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 Uhr.
().
|