반응형
자바, C, 스크립트 모든 언어에 반드시 있는 조건문.
Dart에도 조건문이 존재한다. 이번에는 조건문 If와 Switch에 대해 다뤄보려 한다.
주어진 조건에 대해 결정을 내리는 역할을 하며, 결정된 내용(정의된 기능)을 수행토록 한다.
소스로 알아보도록 하고, 준비물인 웹컴파일러는 아래 포스팅에 포함되어 있다.
1. if(조건){수행할 내용}
void main() {
int number=20;
//number라는 변수를 4로 나누었을때, 나머지가 0인지를 if괄호안에 조건을
//작성한다. true가 반환되면서 중괄호 안의 기능이 수행된다.
if(number % 4 == 0){
print('4의배수 맞음');
}
}
실행결과
4의배수 맞음
2. if(조건){수행할 내용}else if(다른 조건){수행할 내용}
void main() {
int number=20;
//number라는 변수를 4로 나누었을때, 나머지가 0인지를 if괄호안에 조건을
//작성한다. true가 반환되면서 중괄호 안의 기능이 수행된다.
if(number % 4 == 0){
print('4의배수 맞음');
}
//첫번째 조건이 맞지 않을 수도 있을때, 추가적인 조건을 질의할 수 있다.
//말로 풀자면, 2곱하기2는 5야? 아니야? 그럼 2곱하기2는 4야?? 이런식으로 되묻는다고 생각하자.
//위의 예제를 이어서 작성.
if(number % 4 == 1){
print('나머지는 1');
}else if(number % 4 == 0){
print('4의배수 맞음');
}
}
실행결과
4의배수 맞음
4의배수 맞음
3. if(조건){수행할 내용}else if(다른 조건){수행할 내용}else{위 조건들에 해당안될때 수행할 내용}
void main() {
int numbers=21;
int _number=21;
//아래 소스로 얘기하고 싶은건, 첫번째 조건이 아닌 경우 다음조건으로 이동한다는 점과
//만족하는 조건이 찾아졌을땐, 그 다음 로직(if나 else)을 수행하지않는다.
//또한 else에서는 if, else if의 조건들이 하나도 만족하지 않을때만 수행한다.
if(numbers % 4 == 0){
print('4의배수 맞음');
}else if(numbers % 4 == 1){
print('나머지는 1');
}else if(_number % 4 == 2){
print('나머지는2');
}else{
print('어떠한 조건에도 해당안됨.');
}
//조건을 단순하게 예를들어 도출될 결과값이 두개밖에 없다면,
//if, else if가 아닌
//if else로 사용해도 된다.
}
실행결과
나머지는 1
4. Switch
기본적으로 if문과 성격은 같다. 하지만 주어진 조건이 성립할때, 기능이 수행되지만
if else if...처럼 다중 조건에서는 사용에 불편함이 있다. 대신 속도는 if보다 빠르다.
void main() {
int sNumber=20;
switch(sNumber % 4){
case 0 :
print('4의 배수입니다.');
break;
case 1:
print('나머지가 1입니다');
break;
case 2 :
print('나머지가 2');
break;
default :
print('해당되는 값 없음');
break;
}
//설명에도 써놓았지만, 위에서의 조건은 4로 나눈 나머지의 값만 가지고
//찾아가지만, 3으로,2로 등 여러값으로 나누었을때의 대한 다중 조건은 사용할 수가 없다.
if(sNumber % 4 == 0){
print('4의배수입니다.');
}else if(sNumber % 3 ==0){
print('3의배수입니다.');
}else if(sNumber % 2 ==0){
print('2의배수입니다.');
}
}
실행결과
4의 배수입니다.
4의배수입니다.
Dart의 조건문 if, Switch 스터디 끝.
(다시 기초부터 훑으려니깐 지루하네....그냥 건너뛸까...)
반응형