Dart Hello World 예시

지난 시간에는 Dart 첫 예제를 생성하는 방법을 설명했습니다. 이번에는 직접 Hello World 예제를 만들어보겠습니다.

1 Hello World

  1. Dart 프로그램은 반드시 최상위 main() 함수가 있어야 하며 프로그램은 여기서 실행을 시작합니다
  2. 반환값이 없는 함수는 void 로 작성합니다
  3. print() 는 콘솔에 문자를 출력하는 함수입니다
// 프로그램 진입점
void main() {
  print('Hello, World!');
}
Code language: Dart (dart)

지난 시간 생성했던 프로젝트를 예로 들겠습니다. C:\dartdemo\firstdart\bin 경로의 firstdart.dart 파일을 엽니다

파일 안 코드를 위 코드로 수정합니다

그 뒤 cmd로 C:\dartdemo\firstdart 디렉터리로 이동한 뒤 dart run 명령어를 실행합니다

C:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
Hello, World!Code language: CSS (css)

2 변수 (var 자동 타입 추론)

  1. var 로 변수를 정의하면 Dart가 할당한 값으로 자동 타입을 인식하므로 직접 타입명을 적을 필요가 없습니다
  2. 문자열, 정수, 소수, 배열, 딕셔너리(객체)를 지원합니다

예시

// 프로그램 진입점
void main() {
        var name = '보이저 1호';    // 문자열 String
	var year = 1977;           // 정수 int
	var width = 3.7;           // 소수 double
	var planets = ['목성','토성']; // 배열 List
	var info = {
	  'tag': ['토성'],
	  'url': '이미지 주소'
	}; // 딕셔너리 Map
}
Code language: Dart (dart)

위에서 여러 변수를 정의했습니다. 변수는 데이터를 저장하는 작은 메모리 공간으로, 해당 공간에 이름을 붙인 것입니다. 이름이 있으면 해당 메모리 공간을 다루기 편해집니다.

이 메모리 공간은 이론상 0과1로 이루어진 모든 데이터를 저장할 수 있으며 컴퓨터의 모든 데이터는 0과1로 구성됩니다. 문자열, 정수 같은 타입이 존재하는 이유는 데이터 해석을 편하게 하기 위함입니다. 예를 들어 컴파일러가 int 타입으로 인식하면 정수 방식으로 데이터를 읽습니다.

위 변수를 조작하려면 다음처럼 작성합니다

// 프로그램 진입점
void main() {
  var name = '보이저 1호';    // 문자열 String
  var year = 1977;           // 정수 int
  var width = 3.7;           // 소수 double
  var planets = ['목성', '토성']; // 배열 List
  var info = {
    'tag': ['토성'],
    'url': '이미지 주소'
  }; // 딕셔너리 Map

  // 문자열 사용 예시
  print('탐사기 이름:$name');
  print('이름 글자 수:${name.length}');
  print('"호" 포함 여부:${name.contains('')}');

  // 정수 사용 예시
  print('발사 연도:$year');
  print('지난 세월:${DateTime.now().year - year} 년');

  // 소수 사용 예시
  print('탐사기 너비:$width 미터');
  print('너비 제곱:${width * width}');

  // 배열 사용 예시
  print('목표 행성 목록:$planets');
  planets.add('천왕성'); // 요소 추가
  print('수정 후 행성 목록:$planets');
  print('첫 번째 목표:${planets[0]}');

  // 딕셔너리 사용 예시
  print('정보 태그:${info['tag']}');
  print('이미지 주소:${info['url']}');
  info['status'] = '운행 중'; // 새 키-값 추가
  print('전체 정보:$info');
}
Code language: PHP (php)

위 코드는 형식화 출력을 사용했으며 아직 배우지 않은 내용이므로 먼저 개념만 이해하시면 됩니다. 뒤에서 자세히 다룰 예정입니다.

3 흐름 제어문 (조건문 / 반복문)

if else 조건 판단

if 뒤 괄호 안 조건에 따라 다른 코드를 실행합니다. 조건이 true(참)이면 if 뒤 {} 코드를 실행하고 false(거짓)이면 else 뒤 코드를 실행합니다

if (조건) {
  // 조건이 true일 때 실행
} else {
  // 조건이 false일 때 실행
}Code language: JavaScript (javascript)

예로 과속 판단 코드를 작성해보겠습니다.

var speed = 25;

if (speed > 60) {
  print('과속입니다!');
} else {
  print('속도 정상입니다.');
}Code language: PHP (php)

여러 단계 조건을 나눠서 작성할 수도 있습니다

if (speed > 100) {
  print('위험한 속도!');
} else if (speed > 60) {
  print('조금 빠릅니다.');
} else {
  print('안전 주행입니다.');
}Code language: PHP (php)
void main() {
	var year = 1977;
	if (year >= 2001) {
	  print('21세기');
	} else if (year >= 1901) {
	  print('20세기');
	}
}
Code language: Dart (dart)
C:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
20세기Code language: CSS (css)
for 배열 순회 (for-in)

Dart에서 for‑in 반복문은 List, Set 기타 순회 가능 객체를 간결하게 반복하는 방식입니다.

배열 혹은 리스트에 다음 요소가 존재하면 {} 안 코드를 실행하고 요소가 없으면 반복문을 종료하고 뒤 코드로 넘어갑니다.

문법은 다음과 같습니다:

for (var item in collection) {
  // item 활용 처리
}Code language: JavaScript (javascript)

예시 확인

void main() {
	var planets = ['목성','토성'];
	for (final item in planets) {
	  print(item);
	}
}
Code language: Dart (dart)

실행 결과

C:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
목성
토성Code language: CSS (css)
일반 숫자 for 반복문

i=1부터 12까지 포함(<= 사용) 반복하며 print 실행 뒤 i++ 로 이동합니다

void main() {
	for (int i = 1; i <= 12; i++) {
	  print(i);
	}
}Code language: JavaScript (javascript)

실행 결과

C:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
1
2
3
4
5
6
7
8
9
10
11
12Code language: CSS (css)
  1. 먼저 int i = 1 한 번 실행
  2. 그 뒤 조건 i <=12 참인지 확인
  3. 참이면 print (i) 실행 후 1 출력
  4. i++ 실행 i=2로 변경
  5. 다시 i<=12 검사, 2<=12는 true이므로 print(i)로 2 출력
  6. 다시 i++ 실행 후 조건 검사 반복
  7. …..
  8. i가 13이 되면 i<=12가 거짓이 되어 for 반복문 탈출 뒤 코드 실행

int i=1; 은 반복 시작 시 딱 한 번만 실행되고 그 뒤로는 실행되지 않습니다. 이 코드는 i에 초기값을 할당하기 위한 용도이므로 아래처럼 작성해도 무방합니다

void main() {
    int i = 1;
	for (; i <= 12; i++) {
	  print(i);
	}
}
Code language: Dart (dart)

4. while 반복문

while 반복문은 for 반복문과 유사하며 Dart에서 while 반복문은 조건이 참일 동안 코드를 반복 실행하는 구문입니다. 문법은 매우 간단합니다:

while (조건) {
  // 반복문 본문
}Code language: JavaScript (javascript)

실행 로직:

  1. 먼저 조건이 true 인지 확인한다.
  2. 참이면 반복문 본문 실행.
  3. 실행 완료 후 다시 조건 확인.
  4. 조건이 false 가 되면 반복문 종료.

조건을 false로 만들려면 반복문 본문 안에서 변수 값을 수정해야 합니다. 수정하지 않으면 영원히 반복하는 무한루프가 발생합니다.

var year = 2010;
while(year < 2016){
  year += 1;
}
Code language: JavaScript (javascript)

실행 단계를 나누면 다음과 같습니다 👇

초기화 단계
  • 변수 year 를 정의하고 초기값 2010 할당.
조건 검사 단계
  • year < 2016 참인지 검사.
  • 참이면 반복 본문 진입, 거짓이면 반복문 탈출.
반복 본문 실행 단계
  • year += 1 실행 즉 year = year + 1.
  • 반복할 때마다 year 값이 1씩 증가.
재검사 단계
  • 다시 year < 2016 조건 확인.
  • year 가 2010~2015일 때 조건은 참.
  • year 가 2016이 되면 조건이 거짓이 되고 반복 종료.

종료 단계

  • 반복문 종료 후 year 최종 값은 2016 이 된다.

이 반복문은 총 6번 실행됩니다 (2010년~2015년). 매번 year 값을 1 늘리고 조건이 거짓이 될 때까지 반복합니다. 반복 본문 안에서 year 값을 바꾸지 않으면 무한 반복이 발생하니 주의하세요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다