<구글이 알려주는 앱 개발 무료 강의>
[코틀린으로 배우는 안드로이드 기초]
9. 함수 응용 및 중첩 반복문 in 코틀린
안녕하세요. dylan입니다.
좀 더 변화에 자유로를 케이크를 그려보면서 함수와 반복문 안에 반복문을 사용하는 중첩 반복문에 대해서 배워보겠습니다.
(구글 개발 강의 출처)
코틀린 기초 → 코틀린 소개 → Kotlin에서 생일 메시지 만들기(5)
먼저 요약과 우리가 작성할 코드를 보겠습니다.
강의 요약
- 함수를 여러 가지 방법으로 사용해 봅니다.
- 중첩 반복문을 사용해 봅니다.
강의 코드
fun main() {
val age = 20
val layers = 5
printCakeCandles(age)
printCakeTop(age)
printCakeBottom(age, layers)
}
fun printCakeCandles(age: Int) {
print (" ")
repeat(age) {
print(",")
}
println() // Print an empty line
print(" ") // Print the inset of the candles on the cake
repeat(age) {
print("|")
}
println()
}
fun printCakeTop(age: Int) {
repeat(age + 2) {
print("=")
}
println()
}
fun printCakeBottom(age: Int, layers: Int) {
repeat(layers) {
repeat(age + 2) {
print("@")
}
println()
}
}
출력 결과
나이에 맞춰진 생일 케이크 그리기
어떤 나이가 들어 와도 적절한 수의 초가 꽂힌 케이크를 그려보는 코드로 업그레이드해보겠습니다.
먼저, 3가지 함수로 나누어서 그려보겠습니다.
main()은 다음과 같이 작성합니다.
fun main() {
val age = 24
val layers = 5
printCakeCandles(age)
printCakeTop(age)
printCakeBottom(age, layers)
}
1. 케이크의 초를 그리는 함수
선언(정의)
fun printCakeCandles(age: Int) {
print (" ")
repeat(age) {
print(",")
}
println() // Print an empty line
print(" ") // Print the inset of the candles on the cake
repeat(age) {
print("|")
}
println()
}
각 초는 불꽃을 표현할 쉼표(,)와 초를 표현할 수직선(|)이라는 두 가지 기호로 구성됩니다.
,,,,,,,,,,,,,,,,,,,,,,,,
||||||||||||||||||||||||
함수 하나로 이 작업을 실행하려면 repeat() 문 두 개를 함수에 넣습니다. 하나는 불꽃, 하나는 초에 사용합니다.
- main() 함수와 printCakeTop() 함수 아래에서 Int 유형의 한 인수인 age를 사용하는 새로운 함수 printCakeCandles()를 만듭니다.
- 함수 안에서 repeat() 문을 사용하여 불꽃에 사용할 쉼표 , 하나를 출력합니다.
- age회 반복합니다.
- 마지막에 빈 줄을 출력합니다.
- print() 문을 추가하여 초를 삽입할 공백을 하나 출력합니다.
- 그 아래에서 단계를 반복하여 두 번째 repeat() 문을 만들고 수직선(|)으로 초를 출력합니다.
사용(호출)
printCakeCandles(age)
2. 케이크의 상단을 그리는 함수
선언(정의)
fun printCakeTop(age: Int) {
repeat(age + 2) {
print("=")
}
println()
}
케이크 상단 등호 한 줄을 출력할 printCakeTop() 함수는 초반에 만든 printBorder() 함수와 거의 동일합니다.
==========================
- main() 함수 아래에 빈 줄을 추가하고 Int 유형의 한 인수인 age를 사용하는 printCakeTop() 함수를 만듭니다.
- 함수 안에서 repeat() 문을 사용하여 등호 하나를 age 횟수에 2를 더하여 출력합니다. 추가된 등호 두 개는 초가 케이크 양쪽으로 떨어지지 않도록 하기 위한 것입니다.
- 마지막에 repeat()가 완료되면 빈 줄을 출력합니다.
사용(호출)
printCakeTop(age)
3. 케이크의 하단의 층수 그리는 함수
선언(정의)
fun printCakeBottom(age: Int, layers: Int) {
repeat(layers) {
repeat(age + 2) {
print("@")
}
println()
}
}
이 함수에서는 age + 2만큼 넓은 케이크 하단을 그리고 주어진 층수 대로 높게 그립니다.
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
- 즉, 함수에는 두 가지 인수가 필요합니다. 하나는 너비(age), 하나는 높이(layers)에 사용합니다.
- 케이크의 하단을 출력하려면 먼저 'at' @ 기호를 age + 2회 반복하여 층 하나를 출력합니다. 그런 다음 한 층 출력을 layers회 반복합니다.
at 기호를 연령+2회 그려 층 만들기
- 기존 함수 아래에서 Int 유형의 두 인수 age와 layers를 사용하여 printCakeBottom() 함수를 만듭니다.
- 함수 내에서 repeat() 문을 사용하여 @ 기호를 age + 2회 반복한 층 하나를 출력합니다. 다음과 같이 빈 줄을 출력하여 완료합니다.
- 코드를 실행하여 케이크 하단 한 줄이 출력되었는지 확인합니다.
- 함수 내의 모든 코드에 두 번째 repeat() 문을 배치합니다. 이 루프를 layers회 반복합니다.
사용(호출)
printCakeBottom(age, layers)
자, 잘 따라오셨나요? 케이크를 그리기 위해서 3가지 함수를 사용해보았는데요. 모두 배운 내용이고, 마지막 printCakeBottom(age, layers)의 repeat()를 두 번 쓰는 중첩 반복문에 대해서 추가적으로 설명드릴게요.
보통 구구단 표기를 하면서 많이 배우기 도도 합니다. 이처럼 두 가지 작업이 반복되어 변경되는 경우 사용하면 됩니다.
자, 나이와 케이크의 층을 바꿔가면서 실행해보시고 모양도 바꾸면서 여러 가지 형태로 출력해 보세요.
감사합니다.
이상으로 강의를 마치겠습니다.
'프로그래밍 > Kotlin' 카테고리의 다른 글
[코틀린/Kotlin] 가이드맵 - 안드로이드 앱 개발 무료 강의, 강좌 (0) | 2024.04.19 |
---|---|
8. 함수 - 인수(입력 값) 보내기 (안드로이드 코틀린 앱 개발) (0) | 2022.04.12 |
7. 반복문 - repeat (구글이 알려주는 안드로이드 코틀린 앱 개발) (0) | 2022.04.11 |
6. 함수 - fun (구글이 알려주는 안드로이드 코틀린 앱 개발) (0) | 2022.04.07 |
5. 변수 - val, var (구글이 알려주는 안드로이드 코틀린 앱 개발) (0) | 2022.04.05 |
댓글