If๋ฌธ
- if๋ฌธ (if, if-else, if-else-if ๋ค ๋๊ฐ์)
package main
import "fmt"
func main() {
var a int = 20
b := 20
//์์ 1
if a >= 15 {
fmt.Println("15์ด์")
}
if b >= 25 {
fmt.Println("25์ด์")
}
if c := true; c {
fmt.Println("True")
}
//์์ 3
if c := 40; c >= 35 {
fmt.Println("35์ด์")
}
//c+=20 ์๋ฌ๋ฐ์(์์์ c ์ฌ์ฉํ ์๋ฉธ๋จ)
}
- ๋ฐ๋์ Boolean ๊ฒ์ฌ(true, false) ~ 0๊ณผ 1๋ก ์ฌ์ฉ ๋ชปํจ(์๋ ํ๋ณํ ๋ถ๊ฐํ๊ธฐ ๋๋ฌธ)
- ์ฃผ์! if๋ฌธ ์์์ ์งง์ ์ ์ธ์ผ๋ก ๋ณ์ ์ ์ธํ์ฌ ์ฌ์ฉ ํ if๋ฌธ ๋ฐ์์ ์ฌ์ฉ ๋ชป ํจ
- if๋ฌธ ์ฃผ์์
//์๋ฌ ๋ฐ์1
if b>= 25
{
}
//์๋ฌ ๋ฐ์2
if b>=25
fmt.Println("25์ด์")
//์๋ฌ ๋ฐ์3
if c := 1; c{
fmt.Println("True")
}
- ๊ดํธ ๋ฐ๋์ if ์ด ์ค์์ ์ด์ด์ผํจ
- ๊ดํธ ์์ผ๋ฉด ์ ๋จ
- 0๊ณผ 1๋ก T, F ๊ฒ์ฌ ๋ชปํจ
switch๋ฌธ
- switch๋ฌธ (๋ง์ด ์ฐ์โญ)
package main
import "fmt"
func main() {
//์์ 1
a := -7
switch {
case a < 0:
fmt.Println(a, "๋ ์์")
case a == 0:
fmt.Println(a, "๋ 0")
case a > 0:
fmt.Println(a, "๋ ์์")
}
//์์ 2
switch b := 27; {
case b < 0:
fmt.Println(b, "๋ ์์")
case b == 0:
fmt.Println(b, "๋ 0")
case b > 0:
fmt.Println(b, "๋ ์์")
}
//์์ 3
switch c := "go"; c { //c ์งง์ ์ ์ธํ c์ฌ์ฉ ํ์ฌ ๋งค์น
case "go":
fmt.Println("Go!")
case "java":
fmt.Println("Java!")
default:
fmt.Println("์ผ์น ๊ฐ ์์")
}
//์์ 4
switch c := "go"; c + "lang" {
case "golang":
fmt.Println("Golang")
case "java":
fmt.Println("Java!")
default:
fmt.Println("None!")
}
//์์ 5 ๋น๊ต
switch i, j := 20, 30; {
case i < j:
fmt.Println("i๋ j๋ณด๋ค ์ ๋ค")
case i == j:
fmt.Println("i์ j๋ ๊ฐ๋ค")
case i > j:
fmt.Println("i๋ j๋ณด๋ค ํฌ๋ค")
}
}
- Switch ๋ค ํํ์(Expression) ์๋ต ๊ฐ๋ฅ, case ๋ค ํํ์(Expression) ์ฌ์ฉ ๊ฐ๋ฅ
- ์๋ break ๋จ.
- Type ๋ถ๊ธฐ -> ๊ฐ์ด ์๋ ๋ณ์ Type์ผ๋ก ๋ถ๊ธฐ ๊ฐ๋ฅ
- default : case ์ด์ธ์ ๊ฒฝ์ฐ์ ์คํ
- fallthrough
package main
import (
"fmt"
)
func main() {
//์์ 1
a := 30 / 15
switch a {
case 2, 4, 6: //i๊ฐ 2, 4, 6์ธ ๊ฒฝ์ฐ
fmt.Println("a -> ", a, "๋ ์ง์")
case 1, 3, 5: //i๊ฐ 1, 3, 5์ธ ๊ฒฝ์ฐ
fmt.Println("a -> ", a, "๋ ํ์")
}
//์์ 2
switch e := "go"; e {
case "java":
fmt.Println("Java!")
fallthrough
case "go":
fmt.Println("go!") //์กฐ๊ฑด ๋งค์นญ ๋ค ๋ฌธ์ฅ ๋น ์ ธ๋๊ฐ ์๋ break
fallthrough
case "python":
fmt.Println("python")
fallthrough
case "ruby":
fmt.Println("ruby")
fallthrough
case "c":
fmt.Println("c")
}
}
- ์กฐ๊ฑด์ ๋ง๋ ๋ฌธ์ฅ ์๋์ ๋ฐ๋์ ์คํ๋์ด์ผ ํ๋ ๋ฌธ์ฅ -> ํด๋น ๋ฌธ์ฅ ์๋์ fallthrough ์ ์ผ๋ฉด ๋จ
- ์์ ์์ ์์ case "go" ์ดํ์ case๋ค ์ ๋ถ ์คํ๋จ.
for๋ฌธ
- for๋ฌธ (๋ฐ๋ณต๋ฌธ for๋ฌธ ๋ฐ์ ์์, ์ ์ฒ๋ฆฌ)
package main
import "fmt"
func main_for1() {
//์์ 1
for i := 0; i < 5; i++ {
fmt.Println("ex1 : ", i)
}
//์์ 2 (๋ฌดํ๋ฃจํ)
for{
fmt.Println("ex2 : Helllo, Golang!")
fmt.Println("ex2 : Infinite loop!")
}
//์์ 3 (range์ฉ๋ฒ) ๋ฐฐ์ด
loc := []string{"seoul", "busan", "incheon"} //๋ฐฐ์ด
for index, name := range loc { //loc ๋ฐฐ์ด์ ์ธ๋ฑ์ค์ ์ด๋ฆ์ ๊ฐ์ ธ์ด
fmt.Println("ex3 : ", index, name)
}
}
- go์์ ์ ์ผํ๊ฒ ์ ๊ณต๋๋ ๋ฐ๋ณต๋ฌธ(๋ค์ํ ์ฌ์ฉ๋ฒ ์์ง)
- for ๋ค์ ์กฐ๊ฑด ์์จ์ฃผ๋ฉด ๋ฌดํ๋ฃจํ
- ๊ดํธ ์์น(for๋ฌธ ์ค์์ ๊ดํธ ์ด๊ธฐ), ๊ดํธ ์ ๋ฌด ์ฃผ์
- for๋ฌธ 2
package main
import "fmt"
func main() {
//์์ 1
sum1 := 0
for i := 0; i <= 100; i++ {
sum1 += i
}
fmt.Println("ex1 : ", sum1)
//์์ 2 (๋ ๋ง์ด์)
sum2, i := 0, 0
for i <= 100 { //i๋ 100์ดํ ์
sum2 += i
i++
//j := i++ ->์๋ฌ (go์์ ํ์น์ฐ์ฐ์ ๋ฐํ๊ฐx)
}
fmt.Println("ex2 : ", sum2)
//์์ 3 while ํํ๋ ๋น์ท
sum3, i := 0, 0
for {
if i > 100 {
break
}
sum3 += i
i++
}
fmt.Println("ex3 : ", sum3)
//์์ 4
for i, j := 0, 0; i <= 10; i, j = i+1, j+10 { //์งง์์ ์ธ ํ๋ฒ ์ด๊ธฐํํ๋ฉด ๋์
ํด์ผํจ. ๋ค์ ์งง์์ ์ธ x
fmt.Println("ex4 : ", i, j) //i๋ 1์ฉ ์ฆ๊ฐ, j๋ 10์ฉ ์ฆ๊ฐ
}
//์๋ฌ ๋ฐ์
/*
for i, j := 0, 0; i <= 10; i++, j+=10 {
}
//ํ์น์ฐ์ฐ์ ๋ฐํ๊ฐ ์์!
*/
}
- ์์ 1 == ์์ 2 == ์์ 3 -> 5050
- go ์ธ์ด ํ์น์ฐ์ฐ์ ๋ฐํ๊ฐ ์์
- Loop ์ฌ์ฉ
package main
import "fmt"
func main() {
//์์ 1
Loop1:
for i := 0; i < 5; i++ {
for j := 0; j < 5; j++ {
if i == 2 && j == 4 {
break Loop1 //Loop1๋ก ๊ฐ(๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ)
}
fmt.Println("ex 1 : ", i, j)
}
}
//์์ 2
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue
}
fmt.Println("ex2 : ", i)
}
Loop2:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 2 {
continue Loop2
}
fmt.Println("ex3 : ", i, j)
}
}
}
- Loop๋ฌธ ์์๋ continue, break ์ฌ์ฉํ ์ ์๋ ์กฐ๊ฑด๋ฌธ์ด๋ ๋ฐ๋ณต๋ฌธ ์์ผํจ
Go ๋ฌธ๋ฒ ํน์ง ์ ๋ฆฌ
1.
- Go : ๋ชจํธํ๊ฑฐ๋ ์ ๋งคํ ๋ฌธ๋ฒ ๊ธ์ง
- ํ์น ์ฐ์ฐ์ ํ์ฉ i++, ์ ์น ์ฐ์ฐ์ ๋นํ์ฉ ++i(x)
- ์ฆ๊ฐ์ฐ์ฐ ๋ฐํ๊ฐ ์์ sum := i++(x)
- ํฌ์ธํฐ(Pointer ํ์ฉ, ์ฐ์ฐ ๋นํ์ฉ)
2.
- ๋ฌธ์ฅ ๋ ์ธ๋ฏธ์ฝ๋ก (;) ์ฃผ์, ์๋์ผ๋ก ๋์ ์ธ๋ฏธ์ฝ๋ก ์ฝ์
- ๋ ๋ฌธ์ฅ์ ํ ๋ฌธ์ฅ์ ํํํ ๊ฒฝ์ฐ ๋ช
์์ ์ผ๋ก ์ธ๋ฏธ์ฝ๋ก ์ฌ์ฉ(๊ถ์ฅํ์ง ์์)
- ๋ฐ๋ณต๋ฌธ ๋ฐ ์ ์ด๋ฌธ(์กฐ๊ฑด๋ฌธ) (if, for)
3.
- ์ฝ๋ ์์ ์ง์ : ํ ์ฌ๋์ด ์ฝ๋ฉ ํ ๊ฒ ๊ฐ์ ์ผ๊ด์ฑ ์ ์ง
- ์ฝ๋ ์คํ์ผ ์ ์ง
- gofmt -h : ์ฌ์ฉ๋ฒ
- gofmt -w : ์๋ณธํ์ผ์ ๋ฐ์
'GO์ธ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Go] ํจํค์ง ๊ธฐ์ด, ๋ฐ์ดํฐ ํ์ (0) | 2023.01.20 |
---|---|
[GO] Go์ธ์ด ํน์ง,๋ณ์,์์,์ด๊ฑฐํ (1) | 2023.01.05 |
[GO] ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ, ์ปดํจํฐ ์๋ฆฌ (1) | 2023.01.03 |