Baca dalam bahasa Inggris

Solusi - Latihan alur kontrol

Selesai

Mari kita lihat solusi yang mungkin untuk setiap latihan.

Menulis program FizzBuzz

Solusi untuk latihan menggunakan pernyataan switch bisa seperti ini:

Go
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:

Go
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:

Output
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:

Go
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.