이제 로직(logic)과 if문에 관한 수업에서 살펴 본 내용을 복습해 봅시다.
때로는 프로그램이 "조건적에 따라" 일을 수행하도록 만들어야 합니다. 이 때 프로그램은 "A가 사실이면 X를 수행하지만 B가 사실이면 Y를 수행합니다"같은 조건을 만족시켜야 합니다. 이것은 아침에 일어났을 때 "밖에 비가 오면 우산을 가지고 가지만 맑으면 선글라스를 낄 것이다."라고 하는 것과 같습니다. 프로그램에서 조건식(conditional expression)과 함께 if문(if statement)if/else문(if/else statement)을 이용하여 일을 조건적으로 수행할 수 있습니다.
if문을 통해 프로그램은 조건이 참일 경우 코드를 수행합니다. 아래의 코드를 수행하면 x가 0보다 큰 경우에만 메시지를 출력합니다.
var x = 5;

if (x > 0) {
  text('x is a positive number!', 200, 200);
}
x가 5이면 0보다 크기 때문에 메시지를 출력합니다. 만약 x를 -1로 변경하면 x가 0보다 크지 않기 때문에 메시지를 전혀 볼 수 없습니다.
x > 0조건식이라 합니다. 즉, 이것은 인지 거짓인지를 평가하는 식입니다. 값이 또는 거짓일 경우 (숫자나 문자열과는 대조적으로) 불(boolean) 값이라고 합니다. 예를 들면, 다음과 같이 조건식을 나타낼 수 있습니다.
text(x > 0, 200, 200); // "true"가 보입니다.
또한 조건식을 변수에 저장해서 나타낼 수도 있습니다.
var isPositive = x > 0;
text(isPositive, 200, 200);
x를 어떤 값으로 설정하느냐에 따라 또는 거짓이 되기 때문에 불값이 isPositive에 저장되도록 할 수 있습니다.
비교 연산자가 많기 때문에 또는 거짓을 판단할 조건식을 만드는 방법도 많습니다. 가장 많이 사용되는 것은 다음과 같습니다:
다음의 변수를 고려해 결과가 참이 되는 비교 연산자와 식은 아래와 같습니다.
var myAge = 28;
연산자의미참인 식
===같다myAge === 28
!==같지 않다myAge !== 2928 !== 29
>더 크다myAge > 2528 > 25
>=더 크거나 같다myAge >= 2828 >= 28
<더 작다myAge < 3028 < 30
<=더 작거나 같다myAge <= 2828 <= 28
지정 연산자(=)와 동등 연산자(===) 모두 등부호를 사용하기 때문에 두 연산자를 혼동하는 것은 매우 흔히 하는 실수이지만 두 연산자는 다릅니다. 지정 연산자는 실제로 변수의 값을 변경하는 반면 동등 연산자는 단지 변수의 값을 읽은 후 그 값이 특정 값과 동일한지를 확인합니다. 예:
var x = 2 + 2; // Sets it equal to 4

if (x === 4) { // Asks the question, "does this equal 4?"
   text("yep, 2 + 2 = 4!", 200, 200);
}
때때로 조건식에 여러 비교를 함께 결합하고 싶을 때는 논리 연산자(logical operators)를 사용할 수 있습니다. 이러한 연산자를 이용하면 프로그램에서 "X와 Y 둘 다 참이면" 또는 "X 또는 Y 중 하나가 참이면"이라는 표현을 사용할 수 있게 됩니다.
두 개의 조건이 모두 참이 되도록 하려면 &&연산자("and")를 사용하면 됩니다.
var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside > 70 && numberOfClouds < 5) {
  text("Wear sun screen!", 200, 200);
}
종종 프로그램에서 (버튼을 흉내내기 위해) 사용자의 마우스 위치가 직사각형 안에 있는지를 확인하는 것을 이용하는 데 이 경우 다수의 &&가 필요합니다.
rect(100, 50, 100, 100); 

mousePressed = function() {
    if (mouseX > 100 && mouseX < 200 && mouseY > 50 && mouseY < 150) {
      text("You pressed it!", 80, 75);
    }
};
오직 한 조건만이 참이라는 것을 신경쓴다면 || 연산자("or")를 이용할 수 있습니다.
var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside < 70 || numberOfClouds < 5) {
  text("Wear sun screen, even if it's not hot out!", 200, 200);
}
확인할 조건이 매우 복잡할 경우 동일한 식에서 &&|| 둘 다 사용할 수 있습니다. 식을 묶기 위해 괄호를 사용하면 되고 이렇게 함으로써 프로그램에서 식을 판단하는 순서가 혼동되지 않도록 할 수 있습니다.
var myAge = 28;
if ((myAge >= 0 && myAge < 3)  || myAge > 90) {
  println('You\'re not quite in your peak.');
}
다시 if문을 살펴보겠습니다. if 조건이 참이 아닌 경우 코드를 수행하도록 하려면 else문을 추가합니다.
var age = 28;
if (age > 16) {
  println('Yay, you can drive!');
} else {
  println('Sorry, but you have ' + (16 - age) + ' years until you can drive.');
}
종종 여러 조건을 확인하고 조건에 따라 서로 다른 것을 수행해야 하는 경우 else if를 이용합니다.
var age = 20;
if (age >= 35) {
  println('You can vote AND hold any place in government!');
} else if (age >= 30) {
  println('You can vote AND run for the Senate!');
} else if (age >= 18) {
  println('You can vote!');
} else {
  println('You have no voice in government!');
}
원하는 만큼 많은 조건을 계속해서 확인할 수 있습니다. 각 조건이 실제로 가능한지만 확인하면 됩니다. 묶인 각각의 코드가 동작하는지 확인하기 위해 변수를 변경하면서 테스트해 보세요. 이렇게 하면 모든 코드가 제대로 동작하는지 알 수 있습니다.
조건문은 프로그래밍의 중요한 부분인 것을 비로소 알게 되었습니다. 조건문을 이용하면 더 강력하고 유연한 프로그램을 만들 수 있습니다.
로딩 중