[Go] 5. 조건문 -if, else if, else(사칙연산프로그램)

garam0410·2021년 4월 12일
0

Golang

목록 보기
5/6
post-thumbnail

[Go] 4. 연산자 에서 논리연산자를 배웠다.

논리 연산자와 관계연산자는 조건문에 자주 쓰이게 되는데, 참/거짓의 여부에 따라서 조건문이 동작한다.
C언어와 Java에서는 조건문안의 조건이 ( ) 으로 묶여 있었다면, Golang은 공백으로 구분해준다. 아래의 예시는 조건문을 활용한 사칙 연산 계산기이다.

선언해주는 라이브러리가 fmt 외에 몇개가 추가되었는데, C언어의 scanf, Java의 Scanner처럼 자주쓰이는 문자열 처리 패키지이므로 잘 알아두어야겠다.

bufio
fmt
os
strconv
strings

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("잘못 입력하셨습니다.")
	}
}

0개의 댓글