for문 기초
package main
import "fmt"
func main() {
sum := 0
// for문은 초기식, 조건식, 조건 변화식 으로 구성되어있다.
for i := 1; i <= 10; i++ {
sum += i
}
fmt.Println("1부터 10까지 정수 합계:", sum)
}
/////////////////////////////////////////////////////////////////////////////////////////
// i를 1로 초기 선언 -> 초기식
// i가 10보다 작거나 같을때까지 -> 조건식
// i를 1씩 계속 늘린다 -> 조건 변화식
//for문을 통해 반복할 명령은? => sum 에 i 값을 대입한다.
//for문 계산과정
// i = 1일때 sum 1
// i = 2 일때 sum은 1이고 이때 새로 선언된 i=2값을 더한다 -> sum = 3
// i = 3 일때 sum은 3이고 이때 새로 선언된 i=3값을 더한다 -> sum = 6
// i = 4 일때 sum은 6이고 이때 새로 선언된 i=4값을 더한다 -> sum = 10
// i = 5 일때 sum은 10이고 이때 새로 선언된 i=5값을 더한다 -> sum = 15
// i = 6 일때 sum은 15이고 이때 새로 선언된 i=6값을 더한다 -> sum = 21
// i = 7 일때 sum은 21이고 이때 새로 선언된 i=7값을 더한다 -> sum = 28
// i = 8 일때 sum은 28이고 이때 새로 선언된 i=8값을 더한다 -> sum = 36
// i = 9 일때 sum은 36이고 이때 새로 선언된 i=9값을 더한다 -> sum = 45
// i = 10 일때 sum은 45이고 이때 새로 선언된 i=10값을 더한다 -> sum = 55
/////////////////////////////결과//////////////////////////
1부터 10까지 정수 합계: 55
● for문은 (초기식, 조건식, 조건변화식) 으로 구성된 반복문이다.
조건식만 쓰는 for문
package main
import "fmt"
func main() {
n := 2
for n < 100 {
fmt.Printf("count %d\n", n) // n *= 2 를 계산하기전에 먼저 출력한다.
n *= 2 // n의 값이 100을 넘어가기 전까지 계속해서 2씩 곱한다.
}
}
////////////////////////////////////결과//////////////////////////////////
count 2
count 4
count 8
count 16
count 32
count 64
● G0언어 에서는 while 문이 없어 for문을 while 과 같은 형식으로 사용 가능 하다.
for {
fmrt.Printf("무한루프 입니다. \n")
}
for range문
package main
import "fmt"
func main() {
var arr [6]int = [6]int{1, 2, 3, 4, 5, 6}
for index, num := range arr {
fmt.Printf("arr[%d]의 값은 %d입니다.\n", index, num)
}
}
///////////////////결과 /////////////////////
arr[0]의 값은 1입니다.
arr[1]의 값은 2입니다.
arr[2]의 값은 3입니다.
arr[3]의 값은 4입니다.
arr[4]의 값은 5입니다.
arr[5]의 값은 6입니다.
● for range 문 에서의 index는 배열의 주소 번호, num 는 변수이며 해당 주소에 들어있는 값 이다.
● index문은 - 로 대체 및 출력 안할수 있다.
for 를 활용한 구구단
문제:
- 단 수를 입력받을 int형 변수 dan을 선언합니다.
- 사용자로부터 dan을 입력받습니다.
- 7 X 3 = 21 형태로 출력합니다.
- 1부터 9까지 곱셈을 출력합니다.
package main
import "fmt"
func main() {
var dan int
fmt.Scan(&dan)
for i:=1; i<10; i++{
fmt.Printf("%d X %d = %d\n", dan, i, dan*i)
}
}
//////////////////결과////////////////////
입력:
1
출력:
1 X 1 = 1
1 X 2 = 2
1 X 3 = 3
1 X 4 = 4
1 X 5 = 5
1 X 6 = 6
1 X 7 = 7
1 X 8 = 8
1 X 9 = 9
for 를 활용한 빛나는 이등변삼각형
문제:
- 사용자로부터 이등변삼각형의 빗변을 제외한 같은 값의 두 변의 길이를 입력받습니다.
- 빗면이 * 모양으로 빛나는 이등변 삼각형이 출력됩니다.
- 기호와 기호 사이는 띄어쓰기를 합니다.
package main
import "fmt"
func main(){
var a int
fmt.Scanf("%d", &a)
//scanf와 같은 콘솔입력 함수는 인자를 포인터 주소값로 받는다.
// a 로 선언 -> a값을 입력시 이는 a의 메모리 값이 아닌 주소값으로 선언된다.
// &a 로 선언 -> a의 주소는 그대로 있고 a의 메모리 값이 선언된다.
for i:=0; i < a; i++{
for j:=0; j < i; j++{
fmt.Printf("%c ", 'o')
}
fmt.Printf("%c \n", '*')
}
}
/////////////////결과///////////////
입력:
10
출력:
*
o *
o o *
o o o *
o o o o *
o o o o o *
o o o o o o *
o o o o o o o *
o o o o o o o o *
o o o o o o o o o *
scanf와 같은 콘솔입력 함수는 인자를 포인터 주소값로 받는다.
- a 로 선언 -> a값을 입력시 이는 a의 메모리 값이 아닌 주소값으로 선언된다.
- &a 로 선언 -> a의 주소는 그대로 있고 a의 메모리 값이 선언된다.
'GO' 카테고리의 다른 글
GO언어 기초 : 조건문(if / else) (0) | 2021.07.03 |
---|---|
GO언어 기초 : 콘솔 입력 & 출력 함수 (0) | 2021.07.03 |
Go언어 기초: 데이터 타입 (0) | 2021.07.03 |
Go언어 기초: 연산자 (0) | 2021.07.03 |
GO언어 기초 : 변수와 상수 & 콘솔 출력 함수 (0) | 2021.07.03 |