조건에 따른 실행과 흐름 분기
- 조건문은 몇가지 엄격!하다는 특징이 있다 하지만 Go 언어는 부드러워 보여도 나름의 기준 안에서 원칙을 지키고 있다!
- '만약' 돈이 들어온다면 음료수를 선택할 수 있게끔 빨간 불이 뜹니다. 음료수를 선택했는데 '만약' 넣은 돈보다 비싼 음료를 선택하면 음료가 나오지 않습니다. '만약' 넣은 돈과 같거나 싼 음료를 선택하면 음료가 나옵니다. '만약' 잔돈이 있다면 잔돈을 반환합니다.
True/False
- Go언어의 조건문의 조건식은 반드시 Booleam형으로 표현되어야 한다!
- C언어와 C++는 조건식에 1,0과 같은 숫자를 쓸 수 있는 것과 대조적!
조건식의 괄호는 생략 가능
"if k==o"
과 같이 괄호를 생략해서 입력해도 가능!
- 괄호를 쓴다고 해서 실행이 안 되지는 않는다.
조건문의 중괄호는 필수
- 다른 언어는 생략이 가능하지만 Go언에서는 반드시 중괄호를 입력!
- 조건문을 작설 할때는 꼭 조건 블럭 안에 넣어야한다.
괄호의 시작과 else문은 같은 줄에!
- 제일 중요!!
if~else if
문을 작성할 때 개발자마다 개행하는 방법이 다르다!
- 통용되는 정석적인 코딩 방법이 있는데, Go언어는 그 방법을 따른다!
- 조건이 시작하는 첫 번째 줄에(조건문이 아니더라도 함수같이 중괄호가 필요한 블록이 있다면) 블록 시작 브레이스
({)
를 입력해야 한다는 것!
코드
fmt.Print("정수입력 :")
fmt.Scan(&num)
if num == 1
{
fmt.Print("hello\n")
}
else if num == 2
{
fmt.Print("world\n")
} else
{
fmt.Print("worng number..\n")
}
출력
error
코드
package main
import "fmt"
func main() {
var num int
fmt.Print("정수입력 :")
fmt.Scan(&num)
if num == 1 {
fmt.Print("hello\n")
} else if num == 2 {
fmt.Print("world\n")
} else {
fmt.Print("worng number..\n")
}
}
입력
1
출력
hello
조건식에 간단한 문장(Optional Statement) 실행 가능
- 조건식을 실행하기 전에 간단한 문장을 함께 실행할 수 있다.
"if val := num*2; val==2"
와 같이 조건식 앞에 변수를 선언하고 식을 입력할 수 있다.
- 주의할 점! 조건식 전에 정의된 변수는 해당 조건문을 블록에서만 사용할 수 있다!
- switch문, for문 등 여러 문법에서 사용할 수 있으니 기억!
코드
package main
import "fmt"
func main() {
var num int
fmt.Print("정수입력 :")
fmt.Scan(&num)
if val := num * 2; val == 2 {
fmt.Print("hello\n")
} else if val := num * 3; val == 6 {
fmt.Print("world\n")
} else {
fmt.Print("worng number..\n")
}
}
입력
5
출력
worng number..
코드
package main
import "fmt"
func main() {
var opt int
var num1, num2, result float32
fmt.Print("1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 선택:")
fmt.Scan(&opt)
fmt.Print("두 개의 실수 입력:")
fmt.Scan(&num1, &num2)
if opt == 1 {
result = num1 + num2
} else if opt == 2 {
result = num1 - num2
} else if opt == 3 {
result = num1 * num2
} else if opt == 4 {
result = num1 / num2
}
fmt.Printf("결과: %f\n", result)
}
입력
4
1
2
출력
2