Flutter 캠프 6일차

은성·2025년 12월 1일

Flutter 본캠프

목록 보기
6/57
post-thumbnail

오늘의 내용

사전강의 남은 부분 훑어보기, 변수, 연산자, 조건문

Dart

변수

  • 데이터를 저장하기 위한 공간
  • 데이터를 담는 상자
  • 데이터를 담는 상자변수에 데이터를 담고 , 필요할 때 데이터를 꺼내 쓸 수 있음
    나이라는 이름의 상자를 만들고 , 그 상자에 25라는 데이터를 담는 느낌
  • [타입][변수이름] = 값; / var [변수이름] = 값;
  • var : 타입 추론
    타입을 추론해서 적용해줌

상수 : 프로그램 실행중 값을 변경할 수 없는 변수

final [타입][변수이름] = 값;

  • 프로그램 실행 시점에 초기화 된다.
    타입 추론이 가능하기때문에 타입을 생략 할 수 있음
    프로그램 실행 중에 값이 결정되는 경우

(ex 현재시간)

const [변수 이름] = 값;

  • 타입 추론이 가능하기때문에 타입을 생략 할 수 있음
    프로그램이 실행 전,후 상관없이 항상 값이 고정되어있는경우
    (es 원주율)
final String name = 'Bob';
name = 'Alice'; // Error: Can't assign to the final variable 'name'
/// name에 Bob

const int age = 25;
age = 30; // Error: Can't assign to the const variable 'age'

late [타입][변수이름];

  • 변수를 선언할 당시에 넣어줄 값을 특정하기 어려운경우

데이터 타입

숫자형

int

  • 정수 : 소수점이 없는 숫자
    int [변수이름] = [값];

double

  • 소수 : 소수점이 있는 숫자
    double [변수이름] = [값];
    값을 정수로 할당하면 자동으로 소수점을 부여
double z = 1; // double z = 1.0 와 같아요.
z += 2.5;
print(z); // 3.5

num

  • 정수,소수 등의 모든숫자
  • int,double 의 상위 클래스
num a = 1;
a += 2.5;
print(a); // 3.5

문자형

String

  • String [변수 이름] = ‘문자’; / String [변수 이름] = “문자”;
String s1 = '''
이렇게 하면
여러 줄의 문자열을
만들 수 있어요 !
''';
/*
이렇게 하면
여러 줄의 문자열을
만들 수 있어요 !
*/

String s2 = """이것도 여러 줄의
문자열이랍니다 !""";
/*
이것도 여러 줄의
문자열이랍니다 !
*/

불리언형

bool

  • true or 거짓 false 으로 판별할 수 있음
    double [변수이름] = [값];

null

  • 값이 없다는 것을 컴퓨터에게 알려주기 위해 사용
    변수 뒤에?를 붙일 수 있음
    int?orString?

연산자 (operators)

  • 프로그램 내에서 데이터를 조작하거나 처리하리 위해 사용하는 기호 또는 키워드
  • 수학적 계산뿐만 아니라 논리적인 비교, 데이터 조합등 다양한 작업에 사용됨

산술 연산자 (Arithmetic Operators)

  • 기본연산 (+, -, *, /, ~/ ,% )
    -~/ : 하나의 값에서 다른 하나의 값을 나눌 때 사용함
    -% : 하나의 값에서 다른 하나의 값을 나누었을 때 나오는 나머지를 구할 때 사용

비교연산자 (Comparison Operators) : 2개의 값을 비교할 때 사용

==

  • 2개의 값이 값으면 true, 다르면false

!=

  • 2개의 값이 다르면 true, 같으면 false 를 반환해요.

>

  • 기준으로 왼쪽에 있는 값이 오른쪽에 있는 값보다 크면 true,
    작거나 같으면 false 를 반환해요.

<

  • 기준으로 왼쪽에 있는 값이 오른쪽에 있는 값보다 작으면 true,
    크거나 같으면 false 를 반환해요.

>=

  • 기준으로 왼쪽에 있는 값이 오른쪽에 있는 값보다 크거나 같으면 true,
    작으면 false 를 반환해요.

<=

  • 기준으로 왼쪽에 있는 값이 오른쪽에 있는 값보다 작거나 같으면 true,
    크면 false 를 반환해요.

타입 체크 연산자 (Type Test Operators) : 런타임에 타입을 검사할 때 사용

as

  • 타입을 변환할 때 사용
    형변환 : 하나의 특정 타입으로 지정되어 있는 값을 다른 타입으로 바꾸는것
int a = 2;
print(a as double); // 2

String b = '2';
print(b as double); // TypeError 발생

is

  • 특정 타입을 가지고 있는지 판별할 때 사용
int? a = 2;
print(a is int); // true

int? b = null;
print(b is int); // false

is!

  • 특정 타입을 가지고 있지 않은지 판별할 때 사용함
    is 와 반대 개념
int? a = null;
print(a is! int); // true

int? b = 2;
print(b is! int); // false

대입 연산자 (Assignment Operators) : 값을 변수에 대입할 때 사용

=

  • = 기준으로 오른쪽 값을 왼쪽에 대입
int a = 2;
print(a); // 2

??=

  • ??= 기준으로 왼쪽에 있는 것이 null 일 때 오른쪽 값을 대입
int? a = null;
a ??= 2;
print(a); // 2

int b = 3;
b ??= 2;
print(b); // 3

+=

  • += 기준으로 왼쪽에 있는 것과 오른쪽에 있는 것을 더해서 왼쪽에 대입
    a += ba = a + b 는 서로 같은 의미
int a = 2;
int b = 3;
a += b;
print(a); // 5

-=

  • -= 기준으로 왼쪽에 있는 것에서 오른쪽에 있는 것을 빼서 왼쪽에 대입
    a -= ba = a - b 는 서로 같은 의미
int a = 3;
int b = 2;
a -= b;
print(a); // 1

*=

  • *= 기준으로 왼쪽에 있는 것과 오른쪽에 있는 것을 곱해서 왼쪽에 대입
    a *= ba = a * b 는 서로 같은 의미
int a = 2;
int b = 3;
a *= b;
print(a); // 6

/=

  • /= 기준으로 왼쪽에 있는 것에서 오른쪽에 있는 것을 나눠서 왼쪽에 대입
    a /= ba = a / b 는 서로 같은 의미
double a = 6;
int b = 3;
a /= b;
print(a); // 2

~/=

  • ~/= 기준으로 왼쪽에 있는 것에서 오른쪽에 있는 것을 나누었을 때 나온 값의 정수 부분을 왼쪽에 대입
    a ~/= ba = a ~/ b 는 서로 같은 의미
int a = 5;
int b = 3;
a ~/= b;
print(a); // 1

%=

  • %= 기준으로 왼쪽에 있는 것에서 오른쪽에 있는 것을 나누었을 때 나온 나머지를 왼쪽에 대입해요.
    a %= ba = a % b 는 서로 같은 의미
int a = 5;
int b = 3;
a %/= b;
print(a); // 2

논리 연산자

  • 참 or 거짓으로 판별할 수 있는 표현식을 반전하거나 결합할 때 사용

!

  • ! 기준으로 오른쪽에 있는 판별식을 반전
bool a = true; // 무조건 bool 타입
print(!a); // false

||

  • || 기준으로 왼쪽 판별식과 오른쪽 판별식 중 하나라도 참이면 참을 반환하고,
    모두 거짓이면 거짓을 반환함 , or 과 같은 의미
bool a = true;
bool b = true;
print(a || b); // true

bool c = true;
bool d = false;
print(c || d); // true

bool e = false;
bool f = false;
print(e || f); // false

&&

  • && 기준으로 왼쪽 판별식과 오른쪽 판별식 모두 참이면 참을 반환하고,
    하나라도 거짓이면 거짓을 반환함 , and 와 같은 의미
bool a = true;
bool b = true;
print(a && b); // true

bool c = true;
bool d = false;
print(c && d); // false

bool e = false;
bool f = false;
print(e && f); // false

조건문

  • 프로그램의 흐름을 제어하기 위해 사용

if

  • if (조건) {.....}
    조건은 참 or 거짓 으로 판별이 가능해야함
int a = -1;
if (a < 0) {
	print('a 는 음수입니다.'); // a 는 음수입니다.
}

else if

  • else if (조건) { … }
  • if 문의 조건이 거짓이면 else if 문의 조건을 검사해요.
    else if 문의 조건이 참이면 else if 문의 코드 블록이 실행되고,
    거짓이면 else if 문의 코드 블록이 실행되지 않는다.
int a = 0;
if (a < 0) {
	print('a 는 음수입니다.');
} else if (a >= 0) {
	print('a 는 0 이거나 양수입니다.'); // a 는 0 이거나 양수입니다.
}

else

  • else { … }
    if 문의 조건과 else if 문의 조건이 거짓이면 else 문의 코드 블록이 실행되고,
    참이면 건너뛰어요.
    else if 문의 조건은 else if 문이 있는 경우만 !!

switch

  • 어떤 특정 값에 대한 경우를 모두 생각해 주어야 할 때 사용해요.
    switch (값) { … }
    어떤 특정 값에 대해 나올 수 있는 모든 경우를 case 문 형태로 모두 나열해요.
    이때 특정 case 를 제외한 모든 경우에 실행될 코드가 같다면 default 문에 쓰면 돼요.
int dayOfWeek = 1;

switch (dayOfWeek) {
  case 1:
    print('오늘은 월요일입니다.');
    break;
  case 2:
    print('오늘은 화요일입니다.');
    break;
  case 3:
    print('오늘은 수요일입니다.');
    break;
  case 4:
    print('오늘은 목요일입니다.');
    break;
  case 5:
    print('오늘은 금요일입니다.');
    break;
  case 6:
    print('오늘은 토요일입니다.');
    break;
  case 7:
    print('오늘은 일요일입니다.');
    break;
  default:
    print('유효하지 않은 숫자입니다.');
}

조건 표현식

조건문 ? 표현식1 : 표현식2

  • 조건문이 참이면 표현식1을 조건문이 거짓이면 표현식2
bool isPublic = true;
String visibility1 = isPublic ? 'public' : 'private';
print(visibility1); // public

bool isPrivate = false;
String visibility2 = isPrivate ? 'public' : 'private';
print(visibility2); // private

표현식1 ?? 표현식2

  • 표현식1null 값을 갖지 않으면 표현식1 을,
    표현식1null 값을 가지면 표현식2
int? a = null;
print(a ?? 2); // 2

int b = 3;
print(b ?? 2); // 3

0개의 댓글