add: switch statement exercises
This commit is contained in:
53
12-switch/exercises/01-richter-scale/solution/main.go
Normal file
53
12-switch/exercises/01-richter-scale/solution/main.go
Normal file
@ -0,0 +1,53 @@
|
||||
// For more tutorials: https://blog.learngoprogramming.com
|
||||
//
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func main() {
|
||||
args := os.Args
|
||||
if len(args) != 2 {
|
||||
fmt.Println("Give me the magnitude of the earthquake.")
|
||||
return
|
||||
}
|
||||
|
||||
richter, err := strconv.ParseFloat(args[1], 64)
|
||||
if err != nil {
|
||||
fmt.Println("I couldn't get that, sorry.")
|
||||
return
|
||||
}
|
||||
|
||||
var desc string
|
||||
|
||||
switch r := richter; {
|
||||
case r < 2:
|
||||
desc = "micro"
|
||||
case r >= 2 && r < 3:
|
||||
desc = "very minor"
|
||||
case r >= 3 && r < 4:
|
||||
desc = "minor"
|
||||
case r >= 4 && r < 5:
|
||||
desc = "light"
|
||||
case r >= 5 && r < 6:
|
||||
desc = "moderate"
|
||||
case r >= 6 && r < 7:
|
||||
desc = "strong"
|
||||
case r >= 7 && r < 8:
|
||||
desc = "major"
|
||||
case r >= 8 && r < 10:
|
||||
desc = "great"
|
||||
default:
|
||||
desc = "meteoric"
|
||||
}
|
||||
|
||||
fmt.Printf("%.2f is %s\n", richter, desc)
|
||||
}
|
Reference in New Issue
Block a user