** 이 글은 Tucker의 Go 언어 프로그래밍 책을 학습하고 참고하여 작성하거나 또는 그대로 옮겨적었습니다.
Go의 If 문, 그리고 Switch문을 배웠다. 프로그래밍 언어에서 기본적으로 활용할 수 있는 제어문에는 If 조건문, Switch 조건문, for 반복문이 있는데 Go 언어에서 크게 특별한 점이라면 for 문이 비교적 간단하다. While문 종류나 for Each 등 반복문에서 for 키워드외에 쓰이는 키워드가 없고 오로지 for로만 작성한다. 이 점이 프로그래밍 입문자라면 매우 편리할 것 같다는 생각이 들었다.
(Tucker의 Go 언어 프로그래밍을 드디어 for문까지 학습했는데 이 책은 입문서임에도 불구하고 설명이 세세하고 다양한 문법과 예제를 해볼 수 있어서 좋은 것 같다.제어문이 10장을 넘어서 등장하는 건 처음본다.)
서론을 막론하고 제어문을 배우면서 중요하다고 생각됐던걸 정리해보자.
첫 번째, If 조건문!
Go에서 If 조건문을 쓰면서 첫번째로 특이했던 점, 자주 놓쳤던 점은 Go에서 If문을 쓸 때는 {}를 if나 else가 쓰이는 구문과 같은줄에 쓰지 않으면 문법 오류 (syntax error)가 나면서 실행되지 않는다는 점이었다.
아래 코드에서 둘째줄에 if friends >= 3 다음에 바로 '{' 를 써주지 않고 다음 줄로 넘겨서 작성했을 때의 발생 모습이다.
if price >= 30000 {
if friends >= 3
{
fmt.Println("더치ㄱㄱ")
} else {
fmt.Println("음 고민좀")
}
syntax error: unexpected newline, expecting { after if clause
and 조건을 뜻하는 '&&'와 or 조건을 뜻하는 '||'는 자주 쓰인다. 결괏값으로 bool 값을 나타낼 필요가 있을 때 주로 쓰이는 것 같다. 예제에서는 주로 나이 혹은 가격이 특정 범위에 속하는지 속하지 않는지의 내용으로 활용된다. 다음과 같은 예문이 있다.
package main
import "fmt"
func main() {
var age = 22
if age >= 10 && age <= 19 {
fmt.Println("teenager!")
} else if age >= 20 && age <=29 { // 조건을 만족하여 true
fmt.Println("twenites!")
} else {
pass
}
}
첫 번째 if 문에서는 변수 age가 조건을 만족하지 못하여 false로서 중괄호 안의 구문을 실행하지 않고 다음 구문으로 넘어가고, 그 다음 else if 문에서 조건을 만족하여 true임에 따라 중괄호 안의 구문을 실행한다. 그래서 "twenites!" 가 출력되고 if문을 빠져나와 main 함수가 종료된다.
조건문을 사용할 때는 어느 위치에서 조건을 만족하고 실행하는지, 어느 위치에서 if 문이 종료되는지를 생각하는 것이 포인트인 것 같다.
쇼트서킷은 Go언어를 공부하면서 처음 알게된 개념인데 연산자 && 와 || 의 개념에 의해서 나온 개념이다. 조건이 and일 땐 좌변이 false이면 우변을 검사하지 않아도 false 이기 때문에 false 처리를 한다는 것이고, 조건이 or일 땐 좌변이 true이면 우변을 검사하지 않아도 true 처리를 하기 때문에 이를 염두해서 코드를 구현해야 한다는 것이다.