[Go 언어] 26. 엄격한 폼을 요구하는 if 조건문

안녕하세요. 언제나 휴일입니다.

이전 게시글에서는 콘솔에서의 입출력을 다뤘습니다. 이번 게시글부터 제어문을 다룰 거예요. Go언어의 제어문에는 조건문, 선택문, 반복문, 분기문이 있어요. 이번 게시글에서는 조건문을 다룹니다.

Go언어에서는 조건문을 작성할 때 괄호를 생략하는 것을 허용하지 않고 괄호를 붙는 위치와 else가 있어야 하는 위치가 정해져 있습니다. C언어에서 개발자에 따라 다양한 코딩 습관에 따라 괄호가 붙는 위치나 else를 작성하는 위치가 다르게 작성할 수 있었던 것을 엄격하게 한정하고 있습니다.

이처럼 엄격하게 정한 것은 개발자들의 코딩 습관에 따라 다르게 작성하여 가독할 때 서로 불편할 수 있는 여지를 미리 차단하는 효과를 줍니다.

먼저 if 조건문은 다음처럼 표현합니다. 조건식에는 식값이 참과 거짓으로 판별할 수 있는 bool 형식 값이어야 합니다.

if 조건식{

참일 때 수행할 구문

}

프로젝트를 생성하여 정수를 입력받아 짝수인지 판별하는 코드를 작성해 보세요. 앞으로 프로젝트 생성하는 화면은 생략할게요.

// Example 조건문 if만 있을
package main

import "fmt"

func main() {
	var num int
	fmt.Print("번호:")
	fmt.Scan(&num)
	if num%2 == 0 {
		fmt.Println(num, "은(는) 짝수")
	}
	fmt.Println("테스트 종료")
}

실행 결과 – 짝수 입력할 때

번호:34
34 은(는) 짝수
테스트 종료

실행 결과 – 홀수 입력할 때

번호:23
테스트 종료

if 조건식에서 괄호를 생략하면 오류입니다.

[그림 1] 괄호를 사용하지 않아 오류

괄호의 위치가 if 조건식 다음 라인에 작성하는 것도 허용하지 않습니다.

[그림 2] if 조건식 다음 라인에 괄호를 사용하여 오류

조건문을 작성할 때 조건식이 참일 때 수행할 구문과 거짓일 때 수행할 구문을 작성할 수 있어요. 이 때 거짓일 때 수행할 구문은 else를 사용합니다.

if 조건식{

참일 때 수행할 구문

}else{

거짓일 때 수행할 구문

}

프로젝트를 생성하여 정수를 입력받아 짝수인지 홀수인지 판별하는 코드를 작성하세요.

// Example 조건문 if else
package main

import "fmt"

func main() {
	var num int
	fmt.Print("번호:")
	fmt.Scan(&num)
	if num%2 == 0 {
		fmt.Println(num, "은(는) 짝수")
	}else{
		fmt.Println(num, "은(는) 홀수")
	}
	fmt.Println("테스트 종료")
}

실행 결과 – 짝수 입력할 때

번호:12
12 은(는) 짝수
테스트 종료

실행 결과 – 홀수 입력할 때

번호:11
11 은(는) 홀수
테스트 종료

else 키워드는 if문의 닫는 괄호 } 뒤에 와야 하며 else 뒤에 시작하는 괄호{ 가 와야 합니다. 만약 서로 다른 줄에 있으면 오류입니다.

[그림 3] else 키워드를 다음 라인에 표현하여 오류 발생