Zum Menü springen Zum Inhalt springen

iamBlog

i1.Soft: Typumwandlung und Kontrollstrukturen

25.10 2009 20:50

Nachdem der Welt "Hallo" gesagt wurde (vgl. Aufgabe1) und wir uns mit dem kleinen und großen 1*1 vertraut gemacht haben (vgl. Aufgabe2), kümmern wir uns nun um das Einlesen von Eingaben.

Bei der Auswertung der Eingabe sollen wir sicherstellen, dass es sich um eine Ganzzahl handelt - Positiv oder Negativ sei einmal dahingestellt. Sofern die Eingabe stimmt, sprich sich zwischen "0" und und "9" befindet und maximal ein "-" als Vorzeichen besitzt, soll alles in allem in einer Variable "zahlentext" gespeichert werden.

String zahlentext;

Nichtsdestotrotz (was ein Wort...) brauchen wir eine konstante Schleife die solange läuft wie unsere Eingabe lang ist und auch jeden Einzelteil davon in einer temporalen Variablen festhält und überprüft um welche Art von Eingabe es sich handelt.

Eins nach dem anderen und so kümmern wir uns zuerst um die Endlosschleife, die die Eingabe abfängt und in eine Variable schreibt vom Typ Integer, da die Eingabe im ASCII Format festgehalten wird, sprich mit Werten zwischen *...255.

int i=0;

while(true){
    i=System.in.read();
    ...
}

Wichtig: Sobald wir System.in.read(); verwenden, möchte der Kompiler sicherstelen, dass wir auch Exceptions beachten die auftreten könnten. Entsprechend erweitern wir einfach die main um einen Zusatz:

public static void main(String[] args) throws IOException {
...
}

Um nun zu überprüfen ob die Eingabe auch "legitim" der Aufgabenstellung entspricht, sprich zwischen "0" und "9" und maximal ein "-" ist, kommt eine "if-Abfrage" zum Einsatz. Sollte sie "Erfolg" haben, wird das Zeichen in unseren "zahlentext" geschrieben, bzw. als char hinzugefügt.

if(i>='0' && i<='9' || i=='-')              
    zahlentext+=(char)i;

Wichtig ist noch, dass das "Enter" als Ende der Eingabe aufgefasst wird und das Einlesen, sprich die Schleife beendet, bzw. aus dieser heraus ein break stattfindet. Das "Enter" als solches findet man im ASCII Zeichensatz als "\n" und "\r", je nach Betriebssystem.

else if(i=='\n' || i=='\r')
    break;

Für alle anderen Fälle muss es sich um eine fehlerhafte Eingabe handeln und/oder um den Versuch eine nicht Ganzzahl einzugeben und kann dementsprechend mit einer Fehlermeldung abgespeist werden.

else{
    System.out.println("");   //dient einer schöneren Formatierung der Ausgabe
    System.err.println("Ungültige Eingabe < " +(char)i +" > wird bei der Auswertung versucht zu ignorieren.");
}

Da nun das ganze Einlese- und Auswertungsprozedere gehandhabt wird von unserem Programm können wir das "Abgespeicherte" auch zur Kontrolle auf der Konsole ausgeben lassen, bzw. sogar noch durch ein "Umwandeln/Parsen" aus dem gespeicherten String wieder eine Zahl werden lassen.

System.out.println("Ausgabe der Zeichenkette : "+zahlentext);
int zahl=Integer.parseInt(zahlentext);  
System.out.println("Ausgabe der Zahl: "+zahl);

Kommentare

  1. Noch keine Kommentare vorhanden.

Nächster Eintrag: Die Gesetze des Internets

Vorheriger Eintrag: Java–Python: Summierer

Über den iamBlog

Der iamBlog ist von und für Studenten der FH Augsburg und alle Leute die sich für Design, Medien und Multimedia interessieren.

Namensgebend war der Studiengang InterAktive Medien an der FH Augsburg.

Der Blog befindet sich Moment noch im Aufbau. Wir entschuldigen uns für eventuell fehlende Funktionen und den ein oder anderen Fehler im System.

Die neuesten Links

Kategorien

Das neueste Design

Avant von pichfl

Zum Auswählen eines Designs einfach oben links auf den Button Hintergrund ändern klicken.

Feeds

Die Einträge im Blog lassen sich als Atom-Feed abonnieren. Außerdem gibt es einen kombinierten Atom-Feed, der Blogeinträge und Links enthält.
Diese Feeds werden z.B. von Browsern wie Safari oder Mozilla Firefox, Newsreadern wie NetNewsWire oder Feadreader oder Onlinediensten wie Google Reader unterstützt und werden automatisch aktualisiert, wenn neue Einträge im iamBlog vorhanden sind.

Werbung

Disclaimer

This page will never work with Internet Explorer. If you use Internet Explorer to view this page, all styles and features are deactivated. Use Firefox, Safari or Opera to see all the beautiful colours of the internet.