Stoppuhr in der Konsole



Zunächst möchte ich mit euch zusammen eine ConsoleApplication entwickeln welches nur eine Aufgabe zu erledigen hat. Diese ist natürlich das Aufzählen der Natürlichen Zahlen. Also ist eine Stoppuhr.

01 public class Stoppuhr {
02
03      public static void main(String[] args) {
04          long zeit;
05          long startzeit = System.currentTimeMillis() / 1000;
06          while (true) {
07               try {
08                  Thread.sleep(1000);
09               }catch (InterruptedException e) {
10                  break;
11               }
12               zeit = System.currentTimeMillis() / 1000 - startzeit;
13               System.out.println(zeit);
14          }
15      }
16 }


Vielleicht denkt ihr jetzt, dass eine Erklärung oder eine Zusammenfassung der Schritte unnötig ist jedoch möchte ich die Neueinsteiger und ebenfalls wie die Erfahrenen kommilitonen gleich behandeln.

Zunächst starten wir wir gewöhnlich unser Programm immer mit der Entwicklung einer Klasse, welches in unserem Fall Stoppuhr heißt. Nachdem wir es unternommen haben, definieren wir unsere Main-Methode (Zeile 3). In der Zeile 4 und 5 initialisieren wir die beiden Variablen „zeit“ und „startzeit“ mit dem primitiven Datentyp long. Diesen Datentyp haben wir sehr selten besprochen und die Erklärung mit einem Beispiel könnt ihr >>hier<< lesen. In der Zeile 4 deklarieren wir unsere Variable „startzeit“ mit dem vom System steuerten Methode „System.currentTimeMillis()“ Diese Methode gibt die Zeit in Sekunden aus weshalb wir es durch 1000 teilen.
Ab Zeile 6 beginnt unsere while-Schleife welches stets die Bedingung „true“ besitzt. Das heißt, dass die Schleife endlos ist. Ist auch für den Anfang unsers Code sinnvoll weil wir eine Stoppuhr haben die keine Endzeit besitzt. Demnächst werde ich ein Programm schreiben welches ein Stoppuhr beinhaltet mit einem bestimmten Endzeit. Danach eine Stoppuhr als GUI. Danach versuchen wir zwischen Zeile 7 und 11 mit try and catch die Abfragen in der Zeile 8 und 9 zu durchführen. Falls nichts dazwischen kommt, fängt das Programm mit der ersten Zahl an zu zählen. Da wie beginn des Programm die Variable „zeit“ mit keinem Wert deklariert haben, geht Java davon aus, dass diese den Wert 0 besitzt. In der Zeile 12 wird das 1/1000 von der Aktuellen Zeit in Sekunden – der Wert des 1/1000 von der vergangenen Sekunden subtrahiert. Danach wird diese in der Konsole ausgegeben. Dies geschieht in der Zeile 13.

Beispiel:
Wir Starten ab 10:00:00 Minuten an zu zählen. Das ist der Startwert.
Wenn wir 10:00:01 Minuten also eine Sekunde haben, wird diese natürlich wie in der Zeile 12 schon erklärt mir 10:00:01 – 10:00:00 Subtrahiert. Danach bekommen wir das Ergebnis 1 raus. Nach zwei Sekunden ist die Aktuelle Zeit 10:00:02 Also wird 10:00:02 – 10:00:00 = 2 ausgegeben.

Da dies eine Endlos Schleife ist, wird der Compiler erst dann mit dem Zählen beginnen wenn es Abstürzt, vorzeitig beendet wird oder Die Grenze des Datentyps long erreicht hat.
Der Wertebereich, von „long“, liegt -9223372036854775808 bis 9223372036854775807.
Also wenn der Compiler die 9223372036854775807´te Sekunde erreicht wird das Programm abstürzen. Das ist Ungefähr 3,7 * 10 ^ 17 Stunden. Da im Regulären Betrieb ein Programm nie solange laufen wird, sagen wir endlos dazu Obwohl es nicht so ist.

Die Ausgabe unsers Programm lautet wie folgt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.
.
.
.
.
.

Kommentare

Beliebte Posts aus diesem Blog

How can I transform a .jar file to a .bat file?

Ein Kleines Spiel mit Altersabfrage

Zufallszahlen und Verzweigungen in Python