Rozwiązania — ćwiczenia dotyczące przepływu sterowania
Przyjrzyjmy się możliwym rozwiązaniom dla każdego z ćwiczeń.
Pisanie programu FizzBuzz
Rozwiązaniem ćwiczenia do korzystania z instrukcji switch
może być następująca:
package main
import (
"fmt"
"strconv"
)
func fizzbuzz(num int) string {
switch {
case num%15 == 0:
return "FizzBuzz"
case num%3 == 0:
return "Fizz"
case num%5 == 0:
return "Buzz"
}
return strconv.Itoa(num)
}
func main() {
for num := 1; num <= 100; num++ {
fmt.Println(fizzbuzz(num))
}
}
W tym FizzBuzz
przypadku pomnożysz wartość 3 przez 5, ponieważ wyniki są podzielne przez 3 i 5. Można również uwzględnić AND
warunek, aby sprawdzić, czy liczba jest podzielna przez 3 i 5.
Znajdź podstawy
Rozwiązaniem ćwiczenia w celu znalezienia liczb pierwszych mniejszych niż 20 może być coś takiego:
package main
import "fmt"
func findprimes(number int) bool {
for i := 2; i < number; i++ {
if number % i == 0 {
return false
}
}
if number > 1 {
return true
} else {
return false
}
}
func main() {
fmt.Println("Prime numbers less than 20:")
for number := 1; number <= 20; number++ {
if findprimes(number) {
fmt.Printf("%v ", number)
}
}
}
main
W funkcji przeprowadzamy pętlę z zakresu od 1 do 20 i wywołujemy findprimes
funkcję w celu sprawdzenia bieżącego numeru. findprimes
W funkcji uruchamiamy pętlę for
o wartości 2 i powtarzamy, aż licznik będzie większy niż number
wartość. Jeśli element number
jest równomiernie podzielny przez licznik, number
parametr nie jest prime. Jeśli ukończymy pętlę bez zamykania, liczba jest 1 lub jest główną.
Dane wyjściowe są następujące:
Prime numbers less than 20:
2 3 5 7 11 13 17 19
Zapytaj liczbę, panikę, jeśli ujemna
Rozwiązanie ćwiczenia do wypróbowania wywołania panic
może wyglądać następująco:
package main
import "fmt"
func main() {
val := 0
for {
fmt.Print("Enter number: ")
fmt.Scanf("%d", &val)
switch {
case val < 0:
panic("You entered a negative number!")
case val == 0:
fmt.Println("0 is neither negative nor positive")
default:
fmt.Println("You entered:", val)
}
}
}
Pamiętaj, że chodzi o to, aby ćwiczyć nieskończoną pętlę i instrukcję switch
.