Tracks
/
Go
Go
/
Übungen
/
Vogelbeobachter
Vogelbeobachter

Vogelbeobachter

Lernübung

Einführung

Allgemeine Syntax

Die for-Schleife ist eine der am häufigsten verwendeten Anweisungen, um Logik wiederholt auszuführen. In Go besteht sie aus dem Schlüsselwort for, einem Header und einem Block in geschweiften Klammern, der den Schleifenblock enthält. Der Header besteht aus drei Komponenten, die durch Semikolons ; getrennt sind: init, condition und post.

for init; condition; post {
  // loop body - code that is executed repeatedly as long as the condition is true
}
  • Die init-Komponente ist Code, der nur einmal ausgeführt wird, bevor die Schleife startet.
  • Die condition-Komponente muss ein Ausdruck sein, der zu einem booleschen Wert ausgewertet wird und steuert, wann die Schleife beendet werden soll. Der Code innerhalb der Schleife wird ausgeführt, solange diese Bedingung zu wahr ausgewertet wird. Sobald dieser Ausdruck zu falsch ausgewertet wird, werden keine weiteren Iterationen der Schleife mehr ausgeführt.
  • Die post-Komponente ist Code, der am Ende jeder Iteration ausgeführt wird.

Hinweis: Anders als in anderen Sprachen stehen um die drei Komponenten des Headers keine runden Klammern (). Solche Klammern einzufügen führt sogar zu einem Compilerfehler. Die geschweiften Klammern { } um den Schleifenblock sind jedoch immer erforderlich.

For-Schleifen: ein Beispiel

Die init-Komponente legt normalerweise eine Zählvariable an, die condition-Komponente prüft, ob die Schleife fortgesetzt oder beendet werden soll, und die post-Komponente erhöht normalerweise den Zähler am Ende jeder Wiederholung.

for i := 1; i < 10; i++ {
  fmt.Println(i)
}

Diese Schleife gibt die Zahlen von 1 bis 9 aus (einschließlich 9). Den Schritt legt man oft mit einer Anweisung fest, die den Zähler erhöht oder verringert, wie im Beispiel oben.

Anleitung

Du bist ein begeisterter Vogelbeobachter und hältst fest, wie viele Vögel deinen Garten besucht haben. Normalerweise zählst du die Vögel mit einer Strichliste in einem Notizbuch, aber um besser mit deinen Daten arbeiten zu können, hast du die Vogelzahlen der letzten Wochen digitalisiert.

1. Ermittle die Gesamtzahl der Vögel, die du bisher gezählt hast

Fangen wir an, die Daten zu analysieren und uns einen Überblick zu verschaffen. Finde heraus, wie viele Vögel du insgesamt gezählt hast, seit du mit deinen Aufzeichnungen begonnen hast.

Implementiere eine Funktion TotalBirdCount, die einen Slice von ints entgegennimmt, der die Vogelanzahl pro Tag enthält. Sie soll die Gesamtzahl der Vögel zurückgeben, die du gezählt hast.

birdsPerDay := []int{2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1}
TotalBirdCount(birdsPerDay)
// => 34

2. Berechne die Anzahl der Vögel, die in einer bestimmten Woche zu Besuch waren

Jetzt, wo du ein allgemeines Gefühl für deine Vogelzahlen bekommen hast, möchtest du eine genauere Analyse machen.

Implementiere eine Funktion BirdsInWeek, die einen Slice mit der Vogelanzahl pro Tag und eine Wochennummer entgegennimmt.

Sie gibt die Gesamtzahl der Vögel zurück, die du in dieser bestimmten Woche gezählt hast. Du kannst davon ausgehen, dass Wochen immer vollständig erfasst sind.

birdsPerDay := []int{2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1}
BirdsInWeek(birdsPerDay, 2)
// => 12

3. Korrigiere einen Zählfehler

Du hast gemerkt, dass sich die ganze Zeit, in der du versucht hast, die Vögel zu erfassen, ein Vogel in einer entfernten Ecke des Gartens versteckt hat.

Du hast herausgefunden, dass dieser Vogel jeden zweiten Tag in deinem Garten war.

Du weißt nicht genau, wo er an den Tagen dazwischen war, aber sicher nicht in deinem Garten.

Deine Vogelbeobachter-Intuition sagt dir außerdem, dass der Vogel am ersten Tag, den du in deiner Liste erfasst hast, in deinem Garten war.

Schreibe mit diesen neuen Informationen eine Funktion FixBirdCountLog, die einen Slice mit der pro Tag gezählten Vogelanzahl als Argument entgegennimmt und den Slice zurückgibt, nachdem der Zählfehler korrigiert wurde.

birdsPerDay := []int{2, 5, 0, 7, 4, 1}
FixBirdCountLog(birdsPerDay)
// => [3 5 1 7 5 1]
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Go Exercism

Bereit, mit Vogelbeobachter zu starten?

Melde dich bei Exercism an, um Go mit 34 Konzepte166 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.