조건문
특정 상태에 따라 실행하는 코드가 다르게 설정해주는 것이 조건문입니다.
예를 들어 ‘학생 점수가 70점이상이면 A 로 표시하고, 70점 이하면 B 로 표시하라’ 라고 설정해주는데 필요한 것이 조건문입니다.
레벨2에서는 모든 조건문을 살펴보기보다 주로 많이 사용되는 것들을 위주로 설명합니다.
위 그림에서 점수 > 70 인가? 에 해당되는 부분이 조건문에 해당됩니다.
아두이노뿐만 아니라 대부분의 프로그래밍 언어에서 조건문은 유사한 방식으로 작동됩니다.
이 그림을 코드로 변경하면 다음과 같습니다.
조건문은 if로 시작합니다. if(조건) 에서 ‘조건’ 부분이 참인지 거짓인지 판단하고, 결과에 따라 실행하는 부분이 다릅니다. else는 ‘그 밖에, 또 다른’ 뜻을 가지고 있기 때문에, 조건이 참이 아닐 경우에 실행됩니다.
else 부분은 필수가 아니기 때문에 코드에 있어도 되고, 없어도 됩니다.
아래 코드에서는 a에 어떤 값이 저장될지 생각해보세요.
int a;
int b = 75;
if( b>70 && b<80)
{
a = 100;
}
else
{
a = 0;
}
정답
a 변수에는 100이 저장되었습니다.
또한 코드에서 중괄호는 여러군데 위치할 수 있습니다. 코드의 순서가 바뀌지 않는다면, 위치는 변경되어도 됩니다.
아래 코드 모두 같은 기능을 수행합니다.
또한 아래와 같이 조건을 여러개를 설정하고 싶은 경우에도, 조건문을 활용할 수 있습니다.
2개의 조건문을 사용하여, 조건에 따라 A, B, C를 구별할 수 있게 합니다. 이런 구조를 코드로 나타내면 다음과 같습니다.
위와 같은 형식으로 조건이 2개뿐만 아니라 else if(조건)의 형태로 여러개의 조건들을 이어서 구성할 수 있습니다.
아래 코드에서는 a에 어떤 값이 저장될지 생각해보세요.
char a;
int b = 50;
if(b>70)
{
a = 'A';
}
else if(b>60)
{
a = 'B';
}
else if(b>50)
{
a = 'C';
}
else
{
a = 'D';
}
정답
a 변수에는 문자 D가 저장되었습니다.
‘ ‘ 기호는 문자임을 표시해주는 것 임으로 저장할 때는 함께 저장되지 않습니다.
C, C++, 아두이노에서 사용하는 조건문중에 switch 가 있습니다.
switch 문은 if ~ else if와 유사하게 작동합니다. 여러가지 조건들을 검사하여 맞는 조건의 코드를 동작합니다.
switch는 위 형태로 작성됩니다. if와는 다르게 switch에는 값을 기준으로 판단합니다. 값이 어떤 항목에 조건이 맞는지 확인하고 맞는 항목의 코드를 작동시킵니다. 만일 조건이 맞는 항목이 없으면 default 항목의 코드를 실행합니다.
조건에 맞는 코드를 실행하고, break; 코드가 있으면, switch 문을 종료합니다. break;는 작동하고 있는 곳을 정지하고 빠져나가겠다는 코드입니다.
사실 switch와 if ~ else if는 비슷한 동작을 합니다. 속도에 있어서 비교대상이 3개면 if ~ else if를 권장하고, 많을 경우 switch를 권장합니다. 하지만 3D 펜같은 소규모 프로젝트에는 어떤 코드를 사용해도 무방합니다.