myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[Java] - Problem mit if und while Schleife

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 10.10.10, 21:20   #1
Mint
Ist öfter hier
 
Benutzerbild von Mint
 
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
Mint gewöhnt sich langsam dran | 48 Respekt Punkte
Standard [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.

Mint ist offline   Mit Zitat antworten
Ungelesen 10.10.10, 21:36   #2
Mint
Ist öfter hier
 
Benutzerbild von Mint
 
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
Mint gewöhnt sich langsam dran | 48 Respekt Punkte
Standard 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.

Mint ist offline   Mit Zitat antworten
Ungelesen 10.10.10, 21:42   #3
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

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
PornoPenner ist offline   Mit Zitat antworten
Antwort


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

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 Uhr.


Sitemap

().