Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

nun habe ich mal ein Programm (ab)geschrieben und mir meine Gedanken dazu gemacht. Das Programm schaut so aus:


public class Main 

{


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

    {

        String indata; //Variable "indata" als String deklariert

        double Eingabe; //Variable "Eingabe" als double deklariert

        BufferedReader stdin; //Variable "stdin" als BufferedReader-Objekt deklariert

        final double pi = 3.14; // Konstante pi als double deklariert. 


        stdin = new BufferedReader (new InputStreamReader (System.in) ); 

        /* 1.Es wird ein InputStreamReader-Objekt mit dem Inhalt aus System.in erzeugt.

           2.Es wird ein BufferedReader-Objekt erzeugt mit dem Inhalt aus dem InputStreamReader-Objekt

         * 3. Der Gesamtausdruck wird der Variable "stdin" zugewiesen.

        */

        System.out.println("Bitte geben Sie einen Radius eines Kreises ein dessen Fläche Berechnet werden soll:"); // Ausgeben des Strings         

        indata =  stdin.readLine(); //der Variable "indata" wird der eingegebene ´Ausdruck zugewiesen.

        Eingabe = Integer.parseInt(indata); // der character "indata" wird zu einem int konvertiert und der Variable "Eingabe" zugewiesen.

        System.out.println("Der Flächeninhalt beträgt:" + (pi*pi*Eingabe)); //Fläche wird berechnet und zusammen mit dem String ausgegeben.

    }


}

Irgendwie ist mir noch nicht ganz klar wann der nächste Schritt ausgeführt wird. Wenn ich das Programm starte, dann wird der Code abgearbeitet bis:
 System.out.println("Bitte geben Sie einen Radius eines Kreises ein dessen Fläche Berechnet werden soll:"

Dann wartet das Programm doch auf die Eingabe des Benutzers? Aber Warum? Das Programm könnte ja auch denken, dass die Eingabe folgende ist: "". Also nichts. Wie erkenn ich also wann ein Programm wartet und wann es den Code abarbeitet.

Und schaut bitte ob die Kommentare auch dem entsprechen was passiert.

mfg hyperion

Geschrieben

Der Befehl ReadLine bewirkt, dass genau solange gewartet wird, bis ein Zeilenumbruch (CRLF) eingegeben wird.

Wenn Enter (CRLF) eingegeben wird, dann wird diese Zeile eingelesen. Das ist das normale Verhalten von der Methode "ReadLine()"!

grüße

Geschrieben

ah ok, danke.

Ich habe da noch eine Frage.

Warum wird manchmal eine Variable extra deklariert, so wie hier:

String indata;

indata =  stdin.readLine()
Und manchmal so:
BufferedReader stdin = new BufferedReader ( new InputStreamReader( System.in ) );
man könnte das selbe ja auch mit dem ersten Beispiel machen:
String indata =  stdin.readLine();

Gibt es da eine unausgesprochene Programmierer-Regel die besagt wann man extra deklariert und wann man es in einer Gleichung macht, oder ist das total egal und von den Vorlieben eines Programmierers abhängig?

mfg hyperion

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...