hyperion Geschrieben 19. Juni 2008 Geschrieben 19. Juni 2008 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
narphi Geschrieben 19. Juni 2008 Geschrieben 19. Juni 2008 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
hyperion Geschrieben 20. Juni 2008 Autor Geschrieben 20. Juni 2008 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
geloescht_Newlukai Geschrieben 21. Juni 2008 Geschrieben 21. Juni 2008 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden