CodeGym
Lernen
Kurse
Aufgaben
Umfragen & Quizze
Spiele
Hilfe
Zeitplan
Community
Nutzer
Forum
Chat
Artikel
Erfolgsgeschichten
Aktivität
Bewertungen
Abonnements
Helles Design
Frage
  • Bewertungen
  • Über uns
Start
Jetzt lernen
Jetzt lernen
  • Alle Fragen
CodeGym/Hilfe bei Java-Aufgaben/das ergebniss stimmt doch hier?
hidden #10625598
Level 23
  • 14.06.20
  • 696Aufrufe
  • 3Kommentare

das ergebniss stimmt doch hier?

Frage zur Aufgabe Stoppuhr
Java Core,  Level 6,  Lektion 7
In Diskussion

1. Finde heraus, was das Programm macht.
2. Implementiere die Logik in der doStep-Methode, so dass die Geschwindigkeit des Läufers berücksichtigt wird.
2.1. Die getSpeed()-Methode der Runner-Klasse zeigt an, wie viele Schritte ein Läufer pro Sekunde macht.
Der Läufer muss tatsächlich eine bestimmte Anzahl von Schritten pro Sekunde ausführen.
Wenn Usain 4 Schritte pro Sekunde macht, dann macht er 8 Schritte in 2 Sekunden.
Wenn Carl 2 Schritte pro Sekunde macht, dann macht er 4 Schritte in 2 Sekunden.
2.2. Die sleep-Methode der Thread-Klasse besitzt einen long-Parameter.

WICHTIG! Verwende die Methode Thread.sleep(), nicht Stopwatch.sleep().

Anforderungen:
  • Die getSpeed-Methode muss ein int zurückgeben.
  • Das speed-Feld der Runner-Klasse muss ein int sein.
  • Der Runner-Klassenkonstruktor muss ein String und ein int entgegennehmen.
  • Die doStep-Methode muss die Geschwindigkeit des Läufers berücksichtigen. Wenn die Geschwindigkeit des Läufers 2 Schritte pro Sekunde beträgt, dann muss die Methode eine halbe Sekunde lang ausgeführt werden; wenn die Geschwindigkeit des Läufers 4 Schritte pro Sekunde beträgt, dann muss die Methode eine Viertelsekunde lang ausgeführt werden.
  • Die Ausgabe des Programms muss anzeigen, wie viele Schritte Usain und Carl in 2 Sekunden gemacht haben.
package de.codegym.task.task16.task1612; /* Stoppuhr */ public class Solution { public static volatile boolean isStopped = false; public static void main(String[] args) throws InterruptedException { Runner usain = new Runner("Usain", 4); Runner carl = new Runner("Carl", 2); // Auf die Plätze! // Fertig! // Los! usain.start(); carl.start(); Thread.sleep(2000); isStopped = true; Thread.sleep(1000); } public static class Stopwatch extends Thread { private Runner owner; private int stepNumber; public Stopwatch(Runner runner) { this.owner = runner; } public void run() { try { while (!isStopped) { doStep(); } } catch (InterruptedException ignored) { } } private void doStep() throws InterruptedException { stepNumber++; long oneStepTime = 1000 / owner.getSpeed(); if(oneStepTime == 500){ Thread.sleep(500); } if(oneStepTime == 250){ Thread.sleep(250); } System.out.println(owner.getName() + " macht Schritt " + stepNumber + "!"); } } public static class Runner { Stopwatch stopwatch; private String name; private int speed; public Runner(String name, int speed) { this.name = name; this.speed = speed; this.stopwatch = new Stopwatch(this); } public String getName() { return name; } public int getSpeed() { return speed; } public void start() { stopwatch.start(); } } }
0
Kommentare (3)
  • Beliebt
  • Neu
  • Alt
Sie müssen angemeldet sein um einen Kommentar zu hinterlassen
Artem DivertittoSenior Android Developer bei United Tech
26 Juni 2020, 12:45
I think this code is excess
if(oneStepTime == 500){
              Thread.sleep(500);
          }
          if(oneStepTime == 250){
              Thread.sleep(250);
          }
Try to call sleep() method only with oneStepTime argument
+1
Pablo
Level 16 , Bamberg, Germany
26 Juni 2020, 11:10
das Programm muss auch funktionieren wenn du einen neuen runner mit einem int speed hast. Schau nochmal auf deine if Bedingung. Die kannst du eigentlich weglassen und in den thread.sleep Befehl gleich deinen long Parameter oneStepTime übergeben.
+2
hidden #10625598
Level 23
26 Juni 2020, 13:43
ah tatsache, verrückt danke dir!
0
Lernen
  • Registrierung
  • Java-Kurs
  • Hilfe bei Aufgaben
  • Preise
  • Java-Syntax
Community
  • Nutzer
  • Artikel
  • Forum
  • Chat
  • Erfolgsgeschichten
  • Aktivität
  • Partnerprogramm
Unternehmen
  • Über uns
  • Kontakte
  • Bewertungen
  • Presse
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym ist ein Online-Kurs zum Erlernen der Java-Programmierung von Grund auf. Dieser Kurs ist eine perfekte Möglichkeit, Java als Anfänger zu meistern. Er enthält über 1200 Aufgaben mit sofortiger Überprüfung und einen wesentlichen Umfang an Java-Grundlagentheorie. Um Ihren Lernerfolg zu unterstützen, haben wir eine Reihe motivierender Funktionen implementiert: Quizze, Programmierprojekte, Inhalte zum effizienten Lernen und Karriereinformationen für Java-Entwickler.
Folgen Sie uns
Interface-Sprache
English
Deutsch
Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmierer werden gemacht, nicht geboren" © 2026 CodeGym
MastercardVisa
"Programmierer werden gemacht, nicht geboren" © 2026 CodeGym