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 Zitieren
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 Zitieren
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 Zitieren
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. Zitieren
Empfohlene Beiträge
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.