[Go] 4. 연산자 에서 논리연산자를 배웠다.
논리 연산자와 관계연산자는 조건문에 자주 쓰이게 되는데, 참/거짓의 여부에 따라서 조건문이 동작한다.
C언어와 Java에서는 조건문안의 조건이 ( ) 으로 묶여 있었다면, Golang은 공백으로 구분해준다. 아래의 예시는 조건문을 활용한 사칙 연산 계산기이다.
선언해주는 라이브러리가 fmt 외에 몇개가 추가되었는데, C언어의 scanf, Java의 Scanner처럼 자주쓰이는 문자열 처리 패키지이므로 잘 알아두어야겠다.
GO 소스파일
//사칙연산 프로그램 package main import ( "bufio" //입력을 읽기 위한 라이브러리 "fmt" "os" //표준 입력을 받기위한 라이브러리 "strconv" //문자열을 숫자로 바꿔주는 라이브러리 "strings" //불필요한 문자를 삭제하기 위한 라이브러리 ) func main() { fmt.Println("숫자를 입력하세요") var reader = bufio.NewReader(os.Stdin) // reader에 입력 받을 준비 var line, _ = reader.ReadString('\n') // 엔터(줄바꿈)할 때 까지 입력 받음 line = strings.TrimSpace(line) // 문자열의 공백 제거 var n1, _ = strconv.Atoi(line) // 입력받은 값을 숫자로 바꿔서 n1에 저장 //입력 반복 line, _ = reader.ReadString('\n') line = strings.TrimSpace(line) var n2, _ = strconv.Atoi(line) // 입력받은 값을 숫자로 바꿔서 n2에 저장 fmt.Printf("입력하신 숫자는 %d, %d 입니다\n", n1, n2) // n1, n2 출력 fmt.Println("연산자를 입력하세요") line, _ = reader.ReadString('\n') // 엔터(줄바꿈)할 때 까지 입력 받음 line = strings.TrimSpace(line) // 문자열의 공백 제거 //연산자 조건 검사 if line == "+" { fmt.Printf("%d + %d = %d", n1, n2, n1+n2) } else if line == "-" { fmt.Printf("%d - %d = %d", n1, n2, n1-n2) } else if line == "*" { fmt.Printf("%d * %d = %d", n1, n2, n1*n2) } else if line == "/" { fmt.Printf("%d / %d = %d", n1, n2, n1/n2) } else { fmt.Println("잘못 입력하셨습니다.") } }