
ifif ~ elseswitchassert# if
// if (조건) {
// 실행문;
// }
if (a==1) {
print("a is 1");
}
# if ~ else
// if (조건) {
// 실행문;
// } else {
// 실행문;
// }
if (a==1) {
print("a is 1");
} else {
print("a is not 1");
}
if 의 조건이 참이면 {} 내부를 실행if ~ else 문이라면 if 의 조건이 거짓이면 else 의 {} 내부를 실행# switch
// switch (변수) {
// case 값1;
// 실행문;
// break;
// case 값2;
// 실행문;
// break;
// default;
// 실행문;
// }
var number = 1;
switch (number) {
case 1:
print("number is 1");
break;
case 2:
print("number is 2");
break;
default:
print("number is not 1 or 2");
}
switch() 에 전달된 값이 case 값에 일치하면 해당 case 내부를 실행break 가 없으면 이어서 다음 case 까지 실행하게 되기 때문에 case 구분이 필요할 때는 반드시 break 를 선언case 에 만족하지 않으면 default 내부를 실행# assert
// assert (조건식);
assert (a > 0);
assert 는 조건식이 거짓이면 에러가 발생assert 는 debug mode 에서만 동작 # 예시
main() {
int a = 10;
int b = 20;
if (a < b) {
print("$a < $b");
} else {
print("$a >= $b");
}
// assert (a > b);
var port = [22, 25, 53];
switch (port[0]) {
case 22:
print("SSH: 22");
break;
case 25:
print("SMTP: 25");
break;
case 53:
print("DNS: 53");
break;
}
}
------------------------------------------------------------------------------------------
# 결과
10 < 20
SSH: 22
forwhiledo ~ while# for
// for (초기화; 조건식; 증감식) {
// 실행문;
// }
for (int i = 1; i < 5; 1++) {
print("i = $i");
}
for 는 반복문의 가장 기본i += 2 를 통해 2씩 증가도 가능# while
// while (조건식) {
// 실행문;
// }
int a = 0;
while (a < 5) {
print("Hello");
a++;
}
while 은 조건식이 참이면 내부를 순환하는 구조switch 처럼 break 를 지원하기 때문에 특정 조건에서 멈추고 싶다면 break 를 사용하면 됨continue 를 사용하면 됨# do ~ while
// do {
// 실행문;
// } while (조건식);
int a = 0;
do {
print("hello");
} while (a > 0);
do ~ while 에서는 while 과 딱 하나의 차이 존재while 은 조건식을 확인하고 참일 때 실행하기 때문에 처음 조건식 확인 시 거짓이면 한 번의 실행도 없이 종료do ~ while 은 일단 한 번 실행함 ( do )while 의 조건식을 보고 참이면 다시 반복하고 거짓이면 종료# 예시
main() {
var numbers = {};
for (int i = 0; i < 5; i++) {
numbers[i] = i;
print("[for] numbers[$i] = ${numbers[i]}");
}
print("");
int i = 0;
while (i < 5) {
print("[while] numbers[$i] = ${numbers[i]}");
i++;
}
print("");
i = 0;
do {
print("[do-while] numbers[$i] = ${numbers[i]}");
} while(i < 5);
}
Tip! 참고
- 클래스 외부 에서 하나의 기능을 하는 함수는 Function 이고 클래스 내부 에 있는 멤버 함수는 Method 라고 함
- 또한 멤버 변수는 객체가 생성되면 인스턴스 변수라고 함
# class
// class 클래스명 {
// 멤버 변수
// 멤버 함수
// }
class Person {
String name;
getName() {
return name;
}
}
new 키워드를 사용# 예시
class Person {
late String name;
late int age;
getName() {
return name;
}
}
main() {
var student = new Person();
var teacher = Person();
student.name = "Kim";
teacher.name = "Park";
print("student name = ${student.getName()}");
print("teacher name = ${teacher.getName()}");
}
------------------------------------------------------------------------------------------
# 결과
student name = Kim
teacher name = Park
(참조형 변수.멤버)# 예시
class Person {
late String name;
late int age;
getName() {
return name;
}
}
main() {
var student = new Person();
var teacher = Person();
Person person = Person();
student.name = "Kim";
teacher.name = "Park";
person.name = "Unknown";
print("student name = ${student.getName()}");
print("teacher name = ${teacher.getName()}");
print("person name = ${person.getName()}");
}
------------------------------------------------------------------------------------------
# 결과
student name = Kim
teacher name = Park
person name = Unknown