Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Erstes Programm mit Fragen

Empfohlene Antworten

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

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

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

Die Regel wirst Du später kennen lernen, wenn Du ans Exception-Handling kommst. Denn alle von der Deklaration getrennten Zuweisungen sind Zuweisungen, die Exceptions werfen könnten.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.