Erste Schritte Abfangen eines Fehlers/Ausbrechen aus der Schleife

Hallo zusammen,
ich habe ein kleines Programm welches rückwärts die Stellen einer Zahl als Ziffer ausgibt.
Jedoch wirft es einen Fehler aus, den ich auch verstehe. Es liegt daran, dass ein Index nicht negativ werden kann (logischerweise). Nur wie bekomme ich es hin, dass das Programm an dieser Stelle einfach stoppt? Habe schon allesmögliche (break, if Prüfungen ob Wert kleiner Null ect.) probiert, nur nichts hilft.
Java:
package iotoolsimport;
import static Prog1Tools.IOTools.*;

public class Aufgabe4_28 {

    public static void main(String[] args){
        /*
        Dieses Programm soll:
        - positive Zahl einlesen (if Schleife falls negativ oder 0)
        - Zerlegen der Zahl in die Ziffern
        - Ausgabe der Ziffern in umgekehrter Reihenfolge als Text
        - while Schleifen & switch Anweisungen
        */
       
        int eingabe;
       
        System.out.print("Geben Sie die Anzahl Zeilen ein = ");
        eingabe = readInteger();
       
            //Schleife um positive Zahlen zu prüfen
            if (eingabe<=0){
                System.out.println("Eingabe bitte grösser 0 wählen!");}
            else {
                //Schritt1: Länge der Zahl bestimmen
                String eingabe_string;
                eingabe_string = Integer.toString(eingabe);
                int eingabe_länge = eingabe_string.length();

                String number;
                number = String.valueOf(eingabe);
               
                    for(int i = eingabe_string.length()-1; i < number.length(); i--) {
                           
                        int j;
                        j = Character.digit(number.charAt(i), 10);
                                               
                        switch (j){
                            case 1:
                                System.out.print("eins ");
                                break;
                            case 2:
                                System.out.print("zwei ");
                                break;
                            case 3:
                                System.out.print("drei ");
                                break;
                            case 4:
                                System.out.print("vier ");
                                break;
                            case 5:
                                System.out.print("fünf ");
                                break;
                            case 6:
                                System.out.print("sechs ");
                                break;
                            case 7:
                                System.out.print("sieben ");
                                break;
                            case 8:
                                System.out.print("acht ");
                                break;
                            case 9:
                                System.out.print("neun ");
                                break;
                        }

                    }
                }
            }
    }      
}

konkret geht es um die Zeile: j = Character.digit(number.charAt(i), 10); wenn ich schaffe hier das kleiner null abzufangen wäre alles perfekt. Wahrscheinlich bin ich wieder zu dumm zum googlen..
 
Ja das mit der Prüfung war die Lösung,.. glaube 3 Stunden Java am Stück und Googlen,... too much, Zeit für einen Kaffee und eine Pause
das hier geht nun ohne Probleme durch:
Java:
package iotoolsimport;
import static Prog1Tools.IOTools.*;

public class Aufgabe4_28 {

    public static void main(String[] args){
        /*
        Dieses Programm soll:
        - positive Zahl einlesen (if Schleife falls negativ oder 0)
        - Zerlegen der Zahl in die Ziffern
        - Ausgabe der Ziffern in umgekehrter Reihenfolge als Text
        - while Schleifen & switch Anweisungen
        */
       
        int eingabe;
       
        System.out.print("Geben Sie die Anzahl Zeilen ein = ");
        eingabe = readInteger();
       
            //Schleife um positive Zahlen zu prüfen
            if (eingabe<=0){
                System.out.println("Eingabe bitte grösser 0 wählen!");}
            else {
                //Schritt1: Länge der Zahl bestimmen
                String eingabe_string;
                eingabe_string = Integer.toString(eingabe);
                int eingabe_länge = eingabe_string.length();

                String number;
                number = String.valueOf(eingabe);
               
                    for(int i = eingabe_string.length()-1; i < number.length(); i--) {
                                
                        if(i>=0){
                       
                            int j;
                            j = Character.digit(number.charAt(i), 10);
                           
                            switch (j){
                                case 1:
                                    System.out.print("eins ");
                                    break;
                                case 2:
                                    System.out.print("zwei ");
                                    break;
                                case 3:
                                    System.out.print("drei ");
                                    break;
                                case 4:
                                    System.out.print("vier ");
                                    break;
                                case 5:
                                    System.out.print("fünf ");
                                    break;
                                case 6:
                                    System.out.print("sechs ");
                                    break;
                                case 7:
                                    System.out.print("sieben ");
                                    break;
                                case 8:
                                    System.out.print("acht ");
                                    break;
                                case 9:
                                    System.out.print("neun ");
                                    break;
                            }
                        }
                        else
                            break;
                    }
                }
            }
    }      
}
 

Robat

Top Contributor
Sorry aber das ist immer noch nichts....

Seh ich genau so.

Also bei mir läuft das ohne Probleme durch (in Net Beans)...

Es funktioniert zwar, ist aber nicht wirklich performant, da du 2 Abfragen/Prüfungen für den selben Effekt hast, das ist ungefähr das selbe wie:
Java:
int a = 5;

while(a == 5)
{
    if(a==5)
         System.out.println(a);
}

Sicherlich funktioniert das, aber macht es Sinn 2 mal auf den selben Wert zu prüfen? Nein.

hier noch mal der Hinweis:

Java:
for(int i = string.length(); i >=0; i--)
{
    // do some fancy stuff
}
 

InfectedBytes

Top Contributor
Überleg doch mal was du hier machst:
Java:
for(int i = eingabe_string.length()-1; i < number.length(); i--){
Setze i auf die Länge der Eingabe; Solange i kleiner ist als ein Wert, mache i noch kleiner...
 
Hallo zusammen, stimmt natürlich.. bin noch blutiger Anfänger und erstmal froh wenn es läuft... Die gleiche Abfrage 2x machen ist natürlich totaler Unsinn... Das kann man wie beschrieben gut in einer machen.. danke für die Hilfe!!
 

mrBrown

Super-Moderator
Mitarbeiter
Wozu hast du eigentlich eingabe_string und number und wieso speicherst du eingabe_länge wenn du stattdessen eingabe_string.length() und number.length() nutzt?

Und
ist einfach Unsinn, gewöhn dir das besser gleich ab ;)
 

Robat

Top Contributor
Es Geht darum dass if Keine Schleife ist und du aufpassen sollst wie du deine Begrifflichkeiten wählst


Und Ja es ist Besser die Abbruchbedingung deiner for Schleife anzupassen :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Dimax SizeLimitExceededException abfangen Java Basics - Anfänger-Themen 6
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
K falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
Kirby.exe Alle möglichen Error Möglichkeiten abfangen Java Basics - Anfänger-Themen 33
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
D Wie kann man eine solche Fehlermeldung abfangen Java Basics - Anfänger-Themen 4
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
L Erste Schritte IndexOutOfBounce abfangen? Java Basics - Anfänger-Themen 17
M GUI - Fehler abfangen beim Dividieren Java Basics - Anfänger-Themen 8
J Fehler abfangen mit einer Bedingung Java Basics - Anfänger-Themen 3
W In einer Function<Double, Double> undefinierte Rechenoperationen abfangen? Java Basics - Anfänger-Themen 3
D Input/Output Runtime().exec fehler abfangen Java Basics - Anfänger-Themen 4
A Int Eingabe: String mit Exception abfangen. Aber wie? Java Basics - Anfänger-Themen 3
P Variablen Abfangen von eingaben per java.util.Scanner und weiter Verarbeitung Java Basics - Anfänger-Themen 7
S java tastendrücke direkt abfangen und printen Java Basics - Anfänger-Themen 3
H Fehler im Konstruktor abfangen Java Basics - Anfänger-Themen 10
OnDemand Exception Abfangen Java Basics - Anfänger-Themen 5
T Division durch 0 abfangen mit Schleife Java Basics - Anfänger-Themen 4
B Erste Schritte Integer Eingabe über Scanner mit Abfangen von Eingabefehlern Java Basics - Anfänger-Themen 3
H Wie kann ich STRG+V abfangen und ändern Java Basics - Anfänger-Themen 2
B Exception abfangen Java Basics - Anfänger-Themen 33
D [jni] loadLibrary Exception abfangen Java Basics - Anfänger-Themen 9
M Windows Aktionen abfangen Java Basics - Anfänger-Themen 3
W Tastatureingabe abfangen Java Basics - Anfänger-Themen 15
S Exception abfangen Java Basics - Anfänger-Themen 2
N Fehlerquelle leere ArrayList elegant abfangen Java Basics - Anfänger-Themen 3
J Standard Exceptions abfangen Java Basics - Anfänger-Themen 5
M Datentypen Fehler abfangen Java Basics - Anfänger-Themen 5
J Eclipse Console Ausgaben Abfangen Java Basics - Anfänger-Themen 2
sylo Warnings abfangen Java Basics - Anfänger-Themen 2
F Falscheingabe abfangen - Endlosschleife Java Basics - Anfänger-Themen 5
H MouseEvent abfangen Java Basics - Anfänger-Themen 9
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
Spin Exception abfangen Java Basics - Anfänger-Themen 3
M Frage zum Abfangen ungültiger Werte Java Basics - Anfänger-Themen 9
I Fehlendes Argument in Main-Methode abfangen Java Basics - Anfänger-Themen 15
N Probleme beim abfangen von fehlern Java Basics - Anfänger-Themen 4
A FileNotFoundException abfangen? Java Basics - Anfänger-Themen 3
H Falsche Eingabe über try-catch abfangen Java Basics - Anfänger-Themen 2
Spin Abfangen von Fehlern Java Basics - Anfänger-Themen 9
M Exception abfangen? Java Basics - Anfänger-Themen 3
G Eine exception mit negativen zahlen abfangen ? Java Basics - Anfänger-Themen 11
I Dialog - "Ja" / "Nein" abfangen Java Basics - Anfänger-Themen 3
G SQLServerException abfangen Java Basics - Anfänger-Themen 2
C alle möglichen Datumseingaben im Textfeld abfangen Java Basics - Anfänger-Themen 12
G Enter Taste abfangen Java Basics - Anfänger-Themen 11
M Abfangen von java.lang.NumberFormatException Java Basics - Anfänger-Themen 6
T String: NeueZeile (" ") , Break etc. abfangen Java Basics - Anfänger-Themen 2
B Programm würft Exception, kann sie aber nicht abfangen! Java Basics - Anfänger-Themen 25
M Exceptions bei Textfeldern abfangen Java Basics - Anfänger-Themen 2
M JOptionPane.OK_OPTION abfangen oder disablen? Wie? Java Basics - Anfänger-Themen 3
M jToggleButton Klick abfangen ohne den Button zu deaktivieren Java Basics - Anfänger-Themen 2
B Tastatur abfangen Java Basics - Anfänger-Themen 11
U Pfeiltasten abfangen Java Basics - Anfänger-Themen 2
B Ausnahmen abfangen Java Basics - Anfänger-Themen 3
C Benutzereingaben vor Listener abfangen Java Basics - Anfänger-Themen 5
I InputStream von Konsole abfangen Java Basics - Anfänger-Themen 6
O allgemeine Exceptions abfangen Java Basics - Anfänger-Themen 17
P Auswahl von JComboBox abfangen Java Basics - Anfänger-Themen 3
T jcombobox, item-selektierung abfangen Java Basics - Anfänger-Themen 5
F Fehler beim Schreiben wenn Datei schreibgeschützt abfangen Java Basics - Anfänger-Themen 6
C System.out.println "abfangen"? Java Basics - Anfänger-Themen 8
rambozola selbst definierte exception abfangen funzt nicht Java Basics - Anfänger-Themen 14
S von CommandLine übergebene Parameter abfangen? Java Basics - Anfänger-Themen 12
V Mausklick mit rechter Taste abfangen? Java Basics - Anfänger-Themen 8
C falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
L GUI - Tastaturereignisse abfangen ohne Fokus? Java Basics - Anfänger-Themen 8
D Frage zum abfangen von Exceptions Java Basics - Anfänger-Themen 5
V JOP.showInputDialog Abbrechen Button, Exception abfangen Java Basics - Anfänger-Themen 2
W MouseListener Probleme beim Abfangen Java Basics - Anfänger-Themen 8
F Exception in while-Schleife abfangen? Java Basics - Anfänger-Themen 2
F 2 numberformatexception abfangen? Java Basics - Anfänger-Themen 20
ven000m Exception abfangen Java Basics - Anfänger-Themen 9
H JTabel Selectionen abfangen Java Basics - Anfänger-Themen 2
L Java App + Exception abfangen Java Basics - Anfänger-Themen 2
G Fehler abfangen Java Basics - Anfänger-Themen 2
D Falscheingaben abfangen Java Basics - Anfänger-Themen 8
M Negative Werte abfangen Java Basics - Anfänger-Themen 18
G Abfangen von Falscheingaben Java Basics - Anfänger-Themen 4
C Exception abfangen->Klappt nicht ;( Java Basics - Anfänger-Themen 2
S Division durch null abfangen :freak: Java Basics - Anfänger-Themen 14
EagleEye Exception abfangen Java Basics - Anfänger-Themen 15
richis-fragen Ungefähre Restdauer eines Kopiervorgangs ermitteln Java Basics - Anfänger-Themen 3
D Erste Schritte Frage eines absoluten Anfängers Java Basics - Anfänger-Themen 3
R Operatoren Klausurenfrage: Auswertungspräzedenz eines komplizierten Ausdrucks Java Basics - Anfänger-Themen 6
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47

Ähnliche Java Themen

Neue Themen


Oben