728x90

if문

package main

import "fmt"

func main() {
var a int
var b int
fmt.Scan(&a, &b)
if a == b {
fmt.Println("a와 b는 같다.")
}
fmt.Print(a, b)
}

fmt.Scan은 처음 등장했다. 이 함수는 C에서의 scanf랑 동등한 함수이다.

여기서 a와 b의 변수값을 키보드로 입력받을 수 있다.

이제 if문이 처음 등장했다.

if문은 내부의 조건을 확인해서 조건이 맞는다면 실행하고 조건이 맞지 않는다면 실행하지 않는다.

실행 결과를 보자.



보다시피 둘이 같으면 실행한다.



둘이 동등하지 않으면 실행하지 않는다.


else문


package main

import "fmt"

func main() {
var a int
var b int
fmt.Scan(&a, &b)
if a == b {
fmt.Println("a와 b는 같다.")
}else{
fmt.Println("a와 b는 다르다.")
}
fmt.Print(a, b)
}

if문 말고 else문도 존재한다.

else문은 if가 거짓일경우에 동작하게 된다.



else if 문


package main

import "fmt"

func main() {
var a int
var b int
fmt.Scan(&a, &b)
if a == b {
fmt.Println("a와 b는 같다.")
} else if a > b {
fmt.Println("a는 b보다 크다.")
} else if a < b {
fmt.Println("a는 b보다 작다.")
} else {
fmt.Println("a와 b는 다르다.")
}
fmt.Print(a, b)
}

if와 else문 말고 else if문도 있다.

이는 if문이 거짓일 경우 바로 아래의 else if문을 돌면서 조건이 맞는지 확인하게 된다.



결과를 확인하자.


if와 짧은 명령


package main

import "fmt"

func main() {
var a int
fmt.Scan(&a)
if b := 10; a == b {
fmt.Println("a와 b는 같다.")
} else if a > b {
fmt.Println("a는 b보다 크다.")
} else if a < b {
fmt.Println("a는 b보다 작다.")
} else {
fmt.Println("a와 b는 다르다.")
}
fmt.Print(a, b)
}

go에서는 짧은 명령이라는 특수 구문이 있다.

if문에서 조건전에 잛게 명령을 할 수 있는데 이는 블록스코프에서만 유지된다.


가령 위의 코드에서 b의 생존기간은 if와 체이닝된 else if, else구문까지만 유지되며 외부에는 연결이 안된다.


package main

import "fmt"

func main() {
var a int
fmt.Scan(&a)
if b := 10; a == b {
fmt.Println("a와 b는 같다.")
} else if a > b {
fmt.Println("a는 b보다 크다.")
} else if a < b {
fmt.Println("a는 b보다 작다.")
} else {
fmt.Println("a와 b는 다르다.")
}
}

위 코드를 실행해보면 정상작동하는 것을 알 수 있다.

이러한 구문은 파일을 열고 닫을때 매우 유용하다.

취향을 타는 구문인건 분명한것 같지만 go에서는 매우 자주보는 구문이므로 반드시 알아둔다


'Programming > Go' 카테고리의 다른 글

[Go-07]반복문  (0) 2018.08.31
[Go-06]switch(스위치)  (0) 2018.08.31
[Go-04]연산자  (0) 2018.08.31
[Go-03]상수  (0) 2018.08.31
[Go-02]변수  (0) 2018.08.31

+ Recent posts