Files
learngo/x-tba/foundations/calc/05-switch/main.go
Inanc Gumus eb8f9987a8 add: new tictactoe game
add: testing to tictactoe

rename: tictactoe

add: tictactoe steps

refactor: tictactoe const names

refactor: tictactoe loop

add: tictactoe bad switch example (fallthrough)

refactor: tictactoe loop skin

remove: tictactoe changable skin

refactor: tictactoe all

remove: tictactoe unnecessary base dir

add: tictactoe slices

add: tictactoe slices

remove: tictactoe fallthrough

rename: tictactoe slices 10 -> 09

update: loops skin tictactoe

add: tictactoe randomization

add: tictactoe infinite loop and labeled break

refactor: tictactoe rand and infinite loop

add: tictactoe buggy winning algo

add: tictactoe more tests

rename: tictactoe wrongPlay to wrongMove

add: tictactoe even more tests

fix: tictactoe

rename: tictactoe waitForInput to wait

add: tictactoe os.args gameSpeed

remove: tictactoe unnecessary files

rename: tictactoe game messages

refactor: tictactoe main loop

add: types and arrays
2019-07-29 16:43:30 +03:00

49 lines
679 B
Go

package main
import (
"fmt"
"os"
"strconv"
)
func main() {
// lesson: switch
if len(os.Args) != 4 {
fmt.Println("Usage: calc <number1> <operator> <number2>")
return
}
a, err := strconv.ParseFloat(os.Args[1], 64)
if err != nil {
fmt.Println("Please provide a valid number")
return
}
b, err := strconv.ParseFloat(os.Args[3], 64)
if err != nil {
fmt.Println("Please provide a valid number")
return
}
// multiple declare
var (
// declare & assign
op = os.Args[2]
res float64
)
switch op {
case "+":
res = a + b
case "-":
res = a - b
case "*":
res = a * b
case "/":
res = a / b
}
fmt.Printf("%v %v %v = %v\n", a, op, b, res)
}