Dart 언어로 만든 피보나치 수열 재귀호출 함수 예제
글. 수알치 오상문
다트 예제로 나오는 피보나치 제귀호출 함수를 살펴보겠습니다. 다트 소스 코드는 다음과 같습니다.
void main() {
var i = 10;
print('fibonacci($i) = ${fibonacci(i)}');
}
/// Computes the nth Fibonacci number.
int fibonacci(int n) {
return n < 2 ? n : (fibonacci(n - 1) + fibonacci(n - 2));
}
다트 언어는 C/C++ 언어처럼 main() 함수가 프로그램의 중심입니다. 그리고 다른 함수와 클래스 등의 자료를 이용한 코딩이 추가될 수 있습니다.
먼저 피보나치 수열 예제에서 main() 함수를 살펴보겠습니다. 다트 문법의 상당 부분은 C 언어와 유사합니다. 이 예제의 main() 함수도 C 언어의 void형 main() 함수와 같은 구조임을 알 수 있습니다.
void main( ) {
// main 함수 몸통 ...
}
피보나치 예제의 main() 함수는 다음처럼 작성되었습니다.
void main( ) {
var i = 10;
print('fibonacci($i) = ${fibonacci(i)}');
}
다트는 변수를 만들 때 정적(지정식)/자동(추론식) 자료형 지정이 모두 가능합니다. 즉, C 언어처럼 자료형을 직접 지정할 수도 있고, 파이썬처럼 변수에 할당되는 값을 이용한 자동 자료형 지정이 가능합니다.
var i = 10; // var를 이용한 동적 자료형(int) 변수 생성 및 초기화
또는
int i = 10; // int 자료형을 직접 지정한 변수 생성 및 초기화
참고로 다트는 파이썬처럼 문자열 표기에 작은 따옴표(' ')나 큰 따옴표(" ")를 모두 사용할 수 있습니다.
'문자열 표현' 또는 "문자열 표현"
그리고 문자열 안에 외부 변수나 코드를 표현하려면 $변수 또는 ${코드}처럼 표기합니다.
int i = 100;
print('$i'); // 변수 i를 $i로 표기 --> 100 출력
print('${fibonacci(i)}'); // fibonicci(i) 호출 코드를 중괄호 { }로 감싸서 표기
// fibonacci(10) 호출 반환값 출력
이제 아래 코드가 무엇인지 이해할 수 있을 것입니다.
print('fibonacci($i) = ${fibonacci(i)}'); // 출력: fibonacci(10) = 55
다트 설명문(주석문)은 C/C++ 언어처럼 두 가지 표기가 가능합니다.
// 설명...
또는
/*
* 설명...
*/
그리고 ///로 시작하는 설명문도 가능하며 힌트 출력 기능에 사용됩니다.
/// 설명...
다음은 피보나치 수열을 계산하는 재귀호출 함수입니다. C 언어 문법과 같음을 알 수 있습니다.
함수 프로토타입이나 내부 return 명령, 조건 3항 연산자(? :) 모두 C 언어 문법과 같습니다.
int fibonacci(int n) {
return n < 2 ? n : (fibonacci(n - 1) + fibonacci(n - 2));
}
참고로 return 문장 부분은 다음 코드와 같습니다.
if(n<2)
return n;
return (fibonacci(n - 1) + fibonacci(n - 2);
<이상>
'Dart' 카테고리의 다른 글
Dart 언어 키워드(예약어) (0) | 2021.06.11 |
---|---|
Dart, 다트 프로그래밍 맛보기 (0) | 2021.06.11 |
Dart 온라인 코딩 사이트 DartPad (0) | 2021.06.11 |
Dart 다트 문법 정리 (0) | 2021.06.09 |
30분만에 배우는 Dart 언어 (동영상) (0) | 2021.05.31 |