It's not over until you win

[Grasshopper] Fundamentals I - 4. If statements 본문

IT/Grasshopper

[Grasshopper] Fundamentals I - 4. If statements

캬옹몽몽이 2019. 1. 18. 22:19

4번째 챕터 시작이닷!


1-4-1. Flip a Coin


if 명령어를 배우는데, 이제부터는 알아야 할 규칙이 있다고 보인다.

  - JavaScript는 예민하다. 예시로, 'tails' 'Tails' 'tAils' 는 같지 않다. 대소문자도 구별한다는 의미같다.

  - if를 사용할 경우 "( )" 가 맞다면, 뒤에 나오는 "{ }"가 작동한다는 순서를 가지고 있다.


예제문이 조금 어려워졌다. 순서의 의미를 알아야 풀 수 있겠다.

if 를 쓰고 뒤에 "==="이 나온다. "=" 이 등호는 상식적인데, "==="? 왜 3번을 연속해 써야만 하는가?

검색해보니 이를 "일치연산자"라 칭한다고 한다. (하~ 더모르겠다)

더 찾아보니 "=="도 있다. (후우...)


정리해보면,

a=b     ; 이제부터 a는 b라고 하자. 약속. (assignment operator, 할당 연산자...말이 어색하다)

a==b   ; 쟤 둘이 "값"이 같아? 그럼 True.

a===b ; 쟤 둘이 "값"과 "형식"이 같아? 그럼 True (1==="1" ; 이럼 이건 false다. 형식이 틀리잖아 / Equality Operator, 비교 연산자)


더 깊게 배우면 이해할 시간이 온다고 다들 그러니 여기까지만 이해하고 예제를 풀어보자.


var answer = pickRandom ( [ 'heads', 'tails' ] ) ;

print (answer) ; 

  if (answer === 'heads') { drawBoxes ( 'gwg ggg gwg' ) ; }

  if (answer === 'tails') { drawBoxes ( 'rrr wrw wrw' ) ; }



1-4-2. Is It Happy?


What code would check if the grasshopper variable is holding the string 'happy'?

var grasshopper = 'happy'


뭔소리일까. grasshopper가 'happy'를 가지고 있는지 체크해보려면 어떤 코드가 필요하냐고?

grasshopper === 'happy' 이렇게 하면 이게 True이니까 체크해 볼 수 있다는 얘기.



1-4-3. Stoplight


if와 ===를 이해하기 위한 또다른 예제.


var light = pickRandom ( [ 'stop', 'slow', 'go' ] ) ;

print (light) ; 

  if (light === 'stop') { drawBox (red) ; }

  if (light === 'slow) { drawBox (yellow) ; }

  if (light === 'go') { drawBox (green) ; }



1-4-4. Created an If Statement


var aNumber = 5 ; 

  if (aNumber === 5) { drawBox (blue) ; }

  if (aNumber === 4) { drawBox (red) ; }


그럼 결과로 어떤 색깔의 박스가 나올까? 

정답은 Blue!

if를 통해서 그게 맞으면 해당 박스를 그리라고 했으니까.



1-4-5. Flip a Coin Again


if를 배웠으니까 이제는 확장해서 if...else도 배우자.

1-4-1에서 배웠던 예제를 변형하는 예제다. 


var answer = pickRandom ( [ 'heads', 'tails' ] ) ;

print (answer) ; 

  if (answer === 'heads') { drawBoxes ( 'gwg ggg gwg' ) ; }

    else { drawBoxes ( 'rrr wrw wrw' ) ; }


앞에서는 if를 두번쓰는 형태로 표현했지만, 이번엔, 맞으면 gwg..., 틀리면 rrr...이라고. 

형식만 손에 익힌다면 말하듯 쓴다고 생각된다. 

코드를 배운다는 건 결국 새로운 언어를 말하는 방식을 배운다는 의미같다.



1-4-6. Guessing Game


이번에 배우는 건 "!==" comparison operator란다. 이건 does not equal이라는 의미라고.

"==="는 strict equal 이라고 배웠으니까 이번에는 "!==" not equal을 배우는건가.


var pea = pickRandom ( [ 1, 2, 3 ] ) ;

  if (pea !== 1) { print ( 'Not under shell 1' ) ; }

  if (pea !== 3) { print ( 'Not under shell 3' ) ; }



1-4-7. What's the Weather?


문제다.


var todayWeather = 'rainy' ;

var tomorrowWeather = 'cloudy' ;

  if ( todayWeather === 'rainy' ) { print ( 'Bring an umbrella' ) ; }

  if ( todayWeather !== 'rainy' ) { print ( 'Maybe the sun will come out' ) ; 


훗. 맞혔다.



1-4-8. Which Bananas?


또 문제. 아래 예제가 True를 보여주려면 적절한 bananas가 뭐고, numberBananas가 뭐냐는 문제. 객관식.


var bananas ;   

var numberBananas ;     

  if ( bananas !== 'green' ) { if ( numberBananas > 5 ) { print ( "Let's make banana bread" ) ; } }


엑셀에서 함수로 if를 여러번 쓸 때 보는 혼란스러움이 느껴진다. if 안에 if를 또 넣은거지.

그럼 이걸 말로 풀면 True가 되려면 Let's...가 나와야 하잖아. 그럼 Green이 아니면서, 5보다는 큰 수를 넣어주면 정답이겠네?

맞추긴 했는데, 제대로 이해한걸까.


챕터 4를 마쳤다.

의미있는 개념을 배운 듯 해 뿌듯하다.

if, if...else, =, ==, ===, !==

Comments