고언어 4일차 : 반복문(For문)을 써보자

Posted by ITPangPang
2016. 5. 7. 23:48 서버개발/Go(고) 언어


고언어 4일차

반복문(For문)을 써보자



ㆍ 이번글에서는 For문을 써보려고 합니다. 모든언어가 그렇듯

    고언어도 For문이 있습니다. 그런데 다른언어와는 다르게

    고언어의 반복문은 For문 딱 하나라고 합니다. 


    반복문은 정말.. 쉽지만 효율적으로 짜는건 정말 어렵습니다

    반복문에서 진짜 비효율적인 코딩을 한다면 성능은 

    확 떨어집니다. 하지만 그 사실을 알고 있어도 효율적으로 

    코딩하는 것은 정말 힘든것 같습니다.



고언어에서의 For문

C나 Java와 거의 똑같으나 

차이점이라고 한다면

( ) <--요거..

고언어에서는 For문에서

소괄호를 쓰지 않습니다.


그럼 한번 써보도록 하겠습니다

모든 언어의 시작이

Hello World라면


For문의 시작은 

1~10까지의 

합이죠

package main

import "fmt"

var i int
var sum int

func main(){

for i=0; i<=10; i++{
sum = sum + i
}
fmt.Println(sum)
}


답은 55

잘 나왔습니다.


아까도 자바언어를 쓰다와서 그런지

갑자기 좀 헷갈리긴 하지만

지난시간에 배웠던것처럼

변수 type을 뒤에 쓰고

for문에서 ()소괄호만 빼주니

결과는 잘 나옵니다



다음은 

이중For문을

써보겠습니다.

이중For문은 역시

구구단(1~3단까지)

package main

import "fmt"

func main(){
sum :=1
for i:=1; i<=3; i++{
fmt.Println(i,"단 시작\n===========")
for j:=1; j<=9; j++{
sum = i*j
fmt.Println(i,"*",j,"=",sum)
}
}
}


일단 결과는 잘 나왓습니다.

지난번에 배운걸 한번더 써먹기

위해 :=를 다시 써봤습니다

:=를 사용해서 선언 및 초기화를

동시에 하면 타입을 안써줘도 됩니다.

(근데 기분탓인가.. 소괄호 안쓰니 왜이리 가독성이 떨어지는지..)

(아직 이제 막 시작해서 그럴수도 있겠지만..)


처음 시작할때

고언어는 for문밖에 없다고

말했었는데

그 이유는 for문만으로도

다른 반복문처럼 사용할 수 있기 때문입니다.


1~10까지의 중 짝수구하기

(조건문으로)

package main

import "fmt"

func main(){
sum :=1
j :=2
for sum<=10{
sum++
if(sum%j==0){
fmt.Println(sum,"(짝수)");
}
}
}



sum<=10이 될때까지 반복해라..

잘 나옵니다

:= 계속 쓰다보니 좀 익숙해지는거 같기도?



다음은 

무한루프 입니다

(무한루프 돌리다가 i가 50번이면 빠져나오기)

package main

import "fmt"

func main(){
i:=0
for{
i++
fmt.Print("i=",i,",")
if(i==50){
break;
}
}
}



무한루프가 돌다가

i = 50이 되는순간

break되서 

빠져나오는것을

확인할 수 있습니다


오늘의 고언어 공부 끝.