반응형

언어 자료구조 알고리즘/구글 Go 37

[구글 Go 하자] 27. Go 언어 반복문은 for 문, 반복문 탈출은 break

27. Go 언어 반복문은 for문, 반복문 탈출은 break 안녕하세요. 언제나 휴일입니다.이번에는 Go언어의 반복문을 알아볼게요. Go언어에서 제공하는 반복문은 for 문이예요. while 문이나 do while 문을 제공하지 않습니다. for 초기식; 조건식;조건 변화식{반복 수행할 구문} 프로젝트를 생성하여 1부터 100까지 정수의 합계를 계산하는 코드를 표현해 보아요. // Example 반복문(1부터 100까지 정수 합계 구하기)package main import "fmt" func main() { var sum = 0 for i := 1; i 100 { break } i++ } fmt.Println("1에서 ", i, " 까지 더하면 처음으로 100이 넘어요.") fmt.Println("합계..

[구글 Go 하자] 26. 엄격한 폼을 요구하는 if 조건문

26. 엄격한 폼을 요구하는 if 조건문 안녕하세요. 언제나 휴일입니다.이전 게시글에서는 콘솔에서의 입출력을 다뤘습니다. 이번 게시글부터 제어문을 다룰 거예요. Go언어의 제어문에는 조건문, 선택문, 반복문, 분기문이 있어요. 이번 게시글에서는 조건문을 다룹니다.Go언어에서는 조건문을 작성할 때 괄호를 생략하는 것을 허용하지 않고 괄호를 붙는 위치와 else가 있어야 하는 위치가 정해져 있습니다. C언어에서 개발자에 따라 다양한 코딩 습관에 따라 괄호가 붙는 위치나 else를 작성하는 위치가 다르게 작성할 수 있었던 것을 엄격하게 한정하고 있습니다.이처럼 엄격하게 정한 것은 개발자들의 코딩 습관에 따라 다르게 작성하여 가독할 때 서로 불편할 수 있는 여지를 미리 차단하는 효과를 줍니다. 먼저 if 조건문..

[구글 Go 하자] 25. 표준 입력 함수 Scanln, Scan, Scanf 사용하기

25. 표준 입력 함수 Scanln, Scan, Scanf 사용하기 안녕하세요. 언제나 휴일, 언휴예요. 이번 게시글에서는 콘솔에서 입력받을 때 사용하는 Scanln, Scan, Scanf 함수 사용 방법을 알아볼게요.func Scan(a …interface{}) (n int, err error)func Scanln(a …interface{}) (n int, err error) func Scanf(format string, a …interface{}) (n int, err error): Scanln 함수는 공백으로 구분하여 입력받는 함수이며 Scan함수는 공백과 개행으로 구분하여 입력받는 함수입니다. Scanf는 포멧 지정자를 이용하여 개발자가 원하는 형태로 출력하는 함수죠. 새 프로젝트를 생성하여 Sc..

[구글 Go 하자] 24. 표준 출력 함수 Println, Print, Printf 사용하기

24. 표준 출력 함수 Println, Print, Printf 사용하기 안녕하세요. 언제나 휴일, 언휴예요. 이번 게시글에서는 콘솔에 문자를 출력할 때 사용하는 Println, Print, Printf 함수 사용하는 방법을 알아볼게요. Println 함수는 가장 많이 사용하는 함수로 개행을 자동 추가하여 출력하는 함수이며 Print함수는 개행을 자동으로 추가하지 않습니다. 그리고 Printf 함수는 포멧 지정자를 이용하여 개발자가 원하는 형태로 출력하는 함수입니다. 새 프로젝트를 생성하여 Println 함수를 사용해 보아요.[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가 // Example Printlnpackage main import "fmt" func main() { var n..

[구글 Go 하자] 23. 다양한 대입 연산자, 좌항에 상수는 올 수 없어요.

23. 다양한 대입 연산자, 좌항에 상수는 올 수 없어요. 안녕하세요. 언제나 휴일, 언휴예요. 이번 게시글에서는 Go 언어의 대입 연산을 살펴보아요. Go 언어의 대입 연산에는 = 와 +=, -= ,... 등이 있어요. 대입 연산의 좌항에는 상수가 올 수 없어요. 좌항이 관리하는 메모리에 우항의 값을 설정하는 연산이기 때문이예요. 그리고 대입 연산자 좌항에 오는 표현을 l-value라고 불러요. 그리고 +=, -=, ... 등의 연산은 좌항의 값과 우항의 값을 +, -, ... 등의 연산을 먼저 수행한 후에 연산 결과를 좌항이 관리하는 메모리에 설정합니다. 새 프로젝트를 생성하여 논리 연산 표현을 사용해 보아요.[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가 // Example 대입..

[구글 Go 하자] 22. 쉬프트 연산은 비트 단위로 자리를 이동합니다.

22. 쉬프트 연산은 비트 단위로 자리를 이동합니다. 안녕하세요. 언제나 휴일, 언휴예요. 이번 게시글에서는 Go 언어의 쉬프트 연산을 살펴보아요. Go 언어의 쉬프트 연산에는 좌측 쉬프트()를 제공합니다. 쉬프트 연산은 좌항에 정수 형식이 올 수 있고 우항에는 부호없는 정수 형식이 올 수 있어요. 좌측 쉬프트 연산은 좌항의 값을 우항의 값만큼 비트 자리 이동을 합니다. 예를 들어 3을 왼쪽으로 4자리 이동하면 연산 결과는 48이예요. 십진수 3은 이진수로 11이며 4자리 왼쪽으로 이동하면 이진수 110000, 즉 48이예요. 좌측으로 1자리 이동하면 곱하기 2를 수행한 연산 결과가 같아요. 따라서 좌측으로 n자리 이동하면 2의 n승을 곱한 결과와 같습니다. 우측 쉬프트 연산은 좌측 쉬프트 연산과 역으로..

[구글 Go 하자] 21. 비트 단위로 연산하는 비트 연산자

21. 비트 단위로 연산하는 비트 연산자 안녕하세요. 언제나 휴일, 언휴예요. 이번 게시글에서는 Go 언어의 비트 연산을 살펴보아요. Go 언어의 비트 연산에는 비트 AND(&), 비트 OR(|), 비트 XOR(^), 비트 clear(&^)를 제공합니다. 비트 연산은 피연산자로 정수 형식이 올 수 있으며 비트 단위로 연산을 수행해요. 예를 들어 6과 5를 비트 AND 연산을 수행하면 비트 단위로 연산하여 연산 결과는 4가 나와요. 6은 이진수로 ...110이고 5는 이진수로 ...101이죠. 따라서 같은 자리의 비트끼리 AND 연산을 수행하면 이진수로 ...100, 즉 4입니다. 만약 6과 5를 비트 OR 연산을 수행하면 연산 결과는 7이예요. 이진수 110과 이진수 101을 같은 자리의 비트끼리 OR ..

[구글 Go 하자] 19. Go언어에서는 비교 연산자를 사용하는 곳이 많아요.

19. Go언어에서는 비교 연산자를 사용하는 곳이 많아요. 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 값의 크기를 비교하는 비교 연산자를 알아보기로 해요. 비교 연산자는 같음(==), 다름(!=), 작음(=) 연산이 있어요. C언어와 C++언어에서는 비교 연산을 문자열에 사용할 수 없고 배열에서는 개발자가 생각하는 결과와 다르게 메모리 주소를 비교했어요. 하지만 Go 언어에서는 문자열이나 배열에서 비교할 수 있고 비교 결과도 우리가 생각하는 것과 차이가 없어요. 이번 게시글에서는 배열에서 비교하는 연산은 다루지 않을 거예요. 새 프로젝트를 생성하여 비교 연산자를 사용하는 표현을 사용해 봅시다.[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가 // Example 비교 연산자 개요pac..

[구글 Go 하자] 18. 자신의 값을 1 증가하거나 감소시키는 증감 연산자

18. 자신의 값을 1 증가하거나 감소시키는 증감 연산자 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 자신의 값을 1 증가하거나 감소시키는 증감 연산자를 알아보아요. 증감 연산자는 변수의 값을 1 증가하거나 1 감소할 때 사용하는 단항 연산자예요. C언어에서는 증감 연산자의 결과를 다른 변수에 대입할 수 있지만 Go 언어에서는 증감 연산자의 결과를 사용할 수 없어요. 또한 C언어에서는 증감 연산자를 피연산자 앞에 오는 전위 표현을 사용할 수 있었지만 Go언어에서는 항상 피연산자 뒤에 와야 합니다. C언어에서 ++i 표현이나 i++ 표현은 모두 i를 1 증가하는 표현이예요. 하지만 증감 연산자가 피연산자의 앞에 오는 전위 표현과 뒤에 오는 후위 표현에 따라 연산의 결과는 차이가 있어요. 이는 개발자에게 ..

반응형