728x90
1. if문 기본 사용법
if 조건문{
문장
} else if 조건문{
문장
} else{
문장
}
2. if문 예시 1
package main
import "fmt"
func main(){
temp:= 33
if temp > 28{
fmt.Println("에어컨을 켠다")
} else if temp <= 3{
fmt.Println(("히터를 켠다"))
} else if temp <= 18{
fmt.Println("나가자!")
} else{
fmt.Println("덥다")
}
}
//에어컨을 켠다
3. if문 예시 2
package main
import "fmt"
func main (){
var age = 22
if age >= 10 && age <=15{
fmt.Println("You ar young")
} else if age >30 || age <20{
fmt.Println("You ar not 20s")
}else{
fmt.Println("Best age")
}
}
//Best age
4. 쇼트 서킷
|| 의 좌변이 true이면 우변은 무시되고 결과가 true가 된다.
|| 의 좌변이 false이면 우변까지 true,false인지 검사를 하게 된다.
&&의 좌변이 true이면 우변까지 true,false인지 검사를 하게 된다.
&&의 좌변이 false이면 우변은 무시되고 결과가 false가 된다.
5. 예시
package main
import (
"fmt"
)
//전역변수 : 패키지내에서 쓸수있다.
var cnt int = 0
func IncreaseAndReturn() int{
fmt.Println("IncreaseAndReturn()",cnt)
cnt++
return cnt
}
func main(){
if false && IncreaseAndReturn()<5{
fmt.Println("1 증가")
}
//이경우 함수가 호출조차 되지 않는다.
if true && IncreaseAndReturn()<5{
fmt.Println("1 증가")
}
//이경우 뒤의 함수를 호출해서 true,false 를 검사한다.
if false || IncreaseAndReturn()<5{
fmt.Println("1 증가")
}
//이경우 뒤의 함수를 호출해서 true,false 를 검사한다.
if true || IncreaseAndReturn()<5{
fmt.Println("1 증가")
}
//이경우 함수가 호출조차 되지 않는다.
}
6. 소괄호 활용
조건이 복잡해지면 소괄호를 이용하여 묶어준다.
if hasBooked() || (money > 200 && hasempty())
7. 중첩 if
조건이 복잡해지면 if문안에 if문이 들어간다.
package main
import "fmt"
func HasRichFriend() bool {
return true
}
func GetFriendsCount() int{
return 3
}
func main(){
price := 35000
if price >= 50000{
if HasRichFriend(){
fmt.Println("앗 신발끈이 풀렸네")
} else{
fmt.Println("나눠내자")
}
} else if price >= 30000{
if GetFriendsCount() > 3{
fmt.Println("어이쿠 신발끈이...")
} else{
fmt.Println("사람도 얼마 없는데 나눠내자.")
}
}
}
//사람도 얼마 없는데 나눠내자.
8. 초기문, 조건문
문법
if 초기문; 조건문{
문장
}
예시
if filename, success := UploadFile(); success{
fmt.Println("Upload success", filename)
}else{
fmt.Println("Failed to upload")
}
여기서 UploadFile()은 return값이 2개이고 두번째 값은 boolean타입일 것이다.
대체로 함수에서 boolean값은 함수의 성공여부를 반환한다.
그렇기 때문에 함수가 불러와지면 true를 return한다.
if 함수 ; success{
문장
}
대부분 조건문이 들어가면 이런식으로 많이 쓴다.
728x90
'개발 > Go' 카테고리의 다른 글
[Go] switch문 (0) | 2022.08.16 |
---|---|
[Go] const(상수) (0) | 2022.08.11 |
[Go] 함수(function) (0) | 2022.08.10 |
[Go] 연산자 (0) | 2022.08.10 |
[Go] Golang fmt 패키지 (0) | 2022.08.03 |