이수연의 티스토리
[DO it! 1인 개발로 플러터 앱 만들기] 1장 - 다트 언어 실습 본문
실습에 들어가기 전 내가 알고있는 C언어와 Dart를 비교하며 코드를 작성해볼 예정이다. 그 과정에서 Dart의 문법이 어디가 다른지 비교하여 Dart의 특성을 정리해보겠다.
1. 구구단 만들기
-내가 생각한 알고리즘 순서
1.변수 2개 선언
2.이중 for문으로 구구단 계산 및 반복 출력
3.출력
Dart 코드
void main() {
int i; // 단 수를 저장할 변수
int j; // 곱해지는 수를 저장할 변수
// 2단부터 9단까지 반복
for(i = 2; i <= 9; i++)
{
// 각 단에 대해 1부터 9까지 곱셈 수행
for(j = 1; j <= 9; j++){
// 결과 출력 (문자열 보간법 사용)
print('$i * $j = ${i * j}');
}
}
}
어려웠던 점
-이중 for문 까진 쉽게 접근했지만 아직 문자열 출력에 있어 어려움을 겪음
C언어 코드
#include <stdio.h>
int main() {
int i; // 단 수를 저장할 변수
int j; // 곱해지는 수를 저장할 변수
// 2단부터 9단까지 반복
for(i = 2; i <= 9; i++)
{
// 각 단에 대해 1부터 9까지 곱셈 수행
for(j = 1; j <= 9; j++){
// 결과 출력 (서식 문자열 사용)
printf("%d * %d = %d\n", i, j, i * j);
}
}
return 0;
}
2.자동차 할인가 계산기 만들기
-내가 생각한 알고리즘 순서
1.변수 선언 (최고 속력, 가격, 이름, 세일할 횟수)
2.차에 대한 값을 입력받기
3.for문을 사용해 횟수만큼 할인 계산하기
4.출력
Dart 코드
// 프로그램의 시작점: main 함수
void main() {
// Car 객체 생성: maxSpeed, price, name을 각각 전달
Car bmw = Car(320, 100000, 'BMW');
Car toyota = Car(250, 70000, 'TOYOTA');
Car ford = Car(200, 80000, 'FORD'); // 'frod'를 'ford'로 수정
// bmw 자동차에 3번의 10% 할인 적용
bmw.saleCar();
bmw.saleCar();
bmw.saleCar();
// 할인된 가격 출력
print(bmw.price); // 최종 가격 출력
}
// Car 클래스 정의
class Car {
int maxSpeed = 0; // 자동차 최대 속도
num price = 0; // 자동차 가격 (num은 int와 double 모두 허용)
String name = ''; // 자동차 이름
// 생성자(Constructor): 자동차의 속성 초기화
Car(int maxSpeed, num price, String name) { // .(점) → ,(쉼표)로 수정
this.maxSpeed = maxSpeed;
this.price = price;
this.name = name;
}
// saleCar 메서드: 10% 할인 적용
int saleCar() {
price = price * 0.9; // 가격을 10% 할인
return price.toInt(); // int로 변환 후 반환
}
}
어려웠던 점
-클래스 선언 생각을 못 함
-this.ooo -> 기억하기
-생성자를 통해 속성을 부여 = C에서 클래스와 같은 의미인 것 같음
C언어 코드
#include <stdio.h>
int main()
{
int maxSpeed;
int price;
char name[50];
int snumber;
double salecar; // 소수점 계산을 위해 double 사용
// 입력 받기
scanf("%d, %d, %s, %d", &maxSpeed, &price, name, &snumber);
// 초기 가격 설정
salecar = (double)price; // 명시적으로 형변환
// snumber 횟수만큼 10% 할인 적용
for(int i = 0; i < snumber; i++) {
salecar *= 0.9; // 실수 곱셈
}
// 결과 출력 (소수점 없이 출력)
printf("%s %.0f\n", name, salecar);
return 0;
}
차이점
- Dart는 print() 함수 사용, 문자열 안에 변수나 표현식을 ${}로 보간해서 삽입가능
- C는 printf()함수 사용, %d와 같은 서식 지정자를 사용해 변수를 출력
- Dart는 함수가 내장되어 추가적인 라이브러리 포함 필요가 없음
- C는 표준 입출력 라이브러리를 포함해야 printf()함수 사용 가능
- 둘 다 문장 끝에 ;을 붙여야 하지만, Dart는 스크립트 언어로 좀 더 유연함, C는 컴파일 언어라 문법 오류에 엄격함
'flutter' 카테고리의 다른 글
[Flutter] TextField 오버플로우 문제와 해결! (0) | 2025.03.10 |
---|---|
플러터 2장 UI에 사용되는 위젯 제대로 파악하기! (0) | 2025.02.17 |
플러터 1장 다양한 위젯 사용! (0) | 2025.02.15 |
[DO it! 1인 개발로 플러터 앱 만들기] 1장 - 플러터와 다트 기초 다지기 (0) | 2025.02.04 |