简易计算器
filepath:GOPATH/src/test/main.go
package main
import (
"bufio"
"fmt"
"os"
"test/counter"
)
func Calculator() bool{
var x int
var y int
var operation string
var answer int
fmt.Print("输入x: ")
stdin := bufio.NewReader(os.Stdin)
fmt.Fscanf(stdin,"%d\n", &x)
//fmt.Scanf("%d\n", &x)
if x == 0 {
fmt.Print("请输入正确的数字 ~~~\n")
return false
}
fmt.Print("输入+ - * / 符号: ")
fmt.Scanf("%s\n", &operation)
if operation != "+" && operation != "-" && operation != "*" && operation != "/" {
fmt.Print("请输入正确的运算符~~ (+ - * /)\n")
return false
}
fmt.Print("输入y: ")
fmt.Scanf("%d\n", &y)
if y == 0 {
fmt.Print("请输入正确的数字 ~~~ \n")
return false
}
handler := counter.InputData{x,y,operation}
answer = handler.Ufunc();
fmt.Println(x,operation,y,"=",answer)
fmt.Println("您的计算结果为:",answer)
return true
}
func main() {
for {
Calculator()
}
}
filepath:GOPATH/src/test/counter/handler.go
package counter
type InputData struct {
Num1 int
Num2 int
Operation string
}
func (i InputData) Ufunc() int {
var Sum int
switch i.Operation {
case "+":
Sum = i.Num2 + i.Num1
case "-":
Sum = i.Num1 - i.Num2
case "*":
Sum = i.Num1 * i.Num2
case "/":
Sum = i.Num1 / i.Num2
}
return Sum
}
尝试做验证,x 与运算符 验证正常 y输入非int时 第二次获取的x值貌似有问题
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!