Solusi - Latihan alur kontrol
Mari kita lihat solusi yang mungkin untuk setiap latihan.
Menulis program FizzBuzz
Solusi untuk latihan menggunakan pernyataan switch
bisa seperti ini:
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))
}
}
Untuk kasus FizzBuzz
, Anda mengalikan 3 dengan 5 karena hasilnya habis dibagi 3 dan 5. Anda juga dapat menyertakan kondisi AND
untuk memeriksa apakah suatu bilangan habis dibagi 3 dan 5.
Temukan bilangan prima
Solusi untuk latihan menemukan bilangan prima kurang dari 20 bisa jadi seperti ini:
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)
}
}
}
Dalam fungsi main
, kita mengulang dari 1 hingga 20, dan memanggil fungsi findprimes
untuk memeriksa nomor saat ini. Dalam fungsi findprimes
, kita memulai perulangan for
pada 2, dan ulangi sampai penghitung lebih dari nilai number
. Jika number
habis dibagi dengan penghitung, number
bukan bilangan prima. Jika kita menyelesaikan perulangan tanpa keluar, angkanya adalah 1, atau primer.
Berikut output-nya:
Prime numbers less than 20:
2 3 5 7 11 13 17 19
Minta nomor, panik jika negatif
Solusi untuk latihan mencoba panggilan panic
bisa seperti ini:
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)
}
}
}
Ingat, idenya adalah untuk mempraktikkan pengulangan tak terbatas dan pernyataan switch
.