Řešení – cvičení toku řízení

Dokončeno

Pojďme se podívat na možná řešení pro každé cvičení.

Napsání programu FizzBuzz

Řešení pro toto cvičení, které použije switch příkaz, může vypadat přibližně takto:

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))
    }
}

V případě FizzBuzz vynásobíte 3 číslem 5, protože výsledky jsou dělitelné 3 a 5. Můžete také zahrnout podmínku AND , která zkontroluje, jestli je číslo dělitelné číslem 3 a 5.

Vyhledání nábídek

Řešením tohoto cvičení by mohlo být nalezení primárních čísel menší než 20:

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 Ve funkci smyčce od 1 do 20 a zavoláme findprimes funkci, která zkontroluje aktuální číslo. findprimes Ve funkci spustíme smyčku for na 2 a opakujeme, dokud čítač nebude větší než number hodnota. number Pokud je rovnoměrně dělitelný čítačem, number není to hlavní. Pokud smyčku dokončíme bez ukončení, číslo je buď 1, nebo je první.

Tady je výstup:

Prime numbers less than 20:
2 3 5 7 11 13 17 19 

Zeptejte se čísla, panice, pokud je negativní

Řešení cvičení, které se má pokusit o panic volání, může vypadat přibližně takto:

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)
        }
    }
}

Nezapomeňte, že myšlenkou je procvičit nekonečnou smyčku switch a příkaz.