assert
는 개발 모드의 debug중일 때 작동합니다.
배포(production) 코드에서는 프로그램에 영향을 주지 않습니다.
조건이 거짓인 경우 에러를 발생하며 실행이 중단된다.
assert(condition, optionalMessage);
assert(urlString.startsWith('https'),
'URL ($urlString) should start with "https".');
condition :boolean
이 나올 수 있는 조건을 넣는다.
optionalMessage : condition
이 false
발생 시 나올 메세지를 따로 설정할 수 있습니다.
가장 대표적인 흐름제어 문 입니다.
조건이 참일경우와 참이 아닌경우의 두가지 상황을 판단하여 실행하게 됩니다.
int age = 15;
//단일 조건문
if(age >= 19){
print("성인입니다.");
}else{
print("성인이 아닙니다.");
}
//다중 조건문
if(age >= 19){
print("성인입니다.");
}else if(age < 14){
print("촉법 소년입니다.");
}else{
print("성인이 아닙니다.");
}
if
문과 비슷하지만 입력변수가 case
조건해당하면 case
문을 실행합니다.
해당하지 않는 경우는 전부 default
에서 처리됩니다.
String name = 'kim';
switch(name) {
case 'kim':
print('kim입니다.');
break;
case 'i':
print('i입니다.');
break;
default:
print('해당하지 않습니다.');
break;
}
while문은 반복 동작이 필요할 때 사용합니다.
조건식이 true
시 실행문을 반복 동작을합니다.
무조건 조건식을 끝낼 수 있는 동작을 실행문에 생략시 무한 루프가 생기므로 주의하셔야 합니다.
int count = 0;
while(count < 10) {
print(count);
count++;
}
while문처럼 반복문에 해당합니다.
for(초기화식; 조건식; 증감식) {
실행문
}
while과는 다르게 초기화 조건 증감식을 모두 포함하여 작성 합니다.
List<int> list = [2, 1, 3, 5, 7];
for(int i=0; i< list.length; i++) {
print(list[i]);
}
위의 출력의 경우 리스트에 있는 2 ~ 7까지를 출력합니다.
하지만 다른 방법으로도 for를 사용할 수 있습니다.
바로 foreach라는 사용 방법도 존재합니다.
배열을 처음부터 끝까지 반복하면서 내부 인자를 꺼내서 확인합니다.
List<int> list = [2, 1, 3, 5, 7];
// 익명 함수
list.forEach((value){
print(value);
});
// 람다식
list.forEach((value) => print(value));