It's not over until you win

[Grasshopper] Fundamental II-2. Alternative Options 본문

IT/Grasshopper

[Grasshopper] Fundamental II-2. Alternative Options

캬옹몽몽이 2019. 1. 23. 14:35

2챕터.


2-2-1. Get Back Home


For...of를 사용하여 Loop가 진행되면, 마지막 값에 머물러 있게 된다.

예시를 통해 알아보자.


var place = 'home' ;

print (place) ;

for ( place of [ 'Ecuador', 'Fiji', 'Guinea' ] ) { print (place) ; }

place = 'home' ;

print (place) ;


이 때 결과값은 이렇게 나온다.

> home

> Ecuador

> Jiji

> Guinea

> home


그런데 만약 중간에 place='home' ; 코드를 제외한다면 값이 어떻게 될까?

> home

> Ecuador

> Jiji

> Guinea

> Guinea


최초 home을 출력하고, 다음에는 place의 value를 차례대로 출력하라고 했으니 그대로 나오는데, 이후 place의 value는 Guinea에서 멈춰있기 때문이다. 그래서 다시 home을 출력하려면 이를 재설정해줘야 한다는 뜻.



2-2-2. Let's Take a Trip

이제 let을 배우는구나. 
"Let declares a variable just like var, except it has a different scope." 뭔 말이냐.
Let은 var처럼 변수를 선언하지만, 범위는 다르다. 

말로 설명하기 어렵다면 예시로라도 이해해보자.

var x = 100 ; 

if ( x > 0 ) { let x = 25 ; }

print (x) ;ee

출력값은 뭘까? 100이다. {  } 안에서 선언한건 그안에서만 쓰는 내용이기에 최초 var x = 100 ; 임에 따라 출력값은 100


var place = 'home' ;

print (place) ;

for ( let place of [ 'Algeria', 'Banfladesh', 'Cuba' ] ) { print (place) ; }

print (place) ;

2-2-1.에서는 for...of만 사용했고, 2-2-2.에서는 그 안에 let을 사용했다. 그 차이점이 무엇인지를 알려주는 단계다.



2-2-3. Let It Go?


let을 이해했는지 확인하는 문제다. 정답은 10이다.

var x = 10 ;

if ( x > 5 ) { let x = 1 ; } else { let x = 0 ; }

print (x) ;



2-2-4. Used Variable Scope


위에서 Let을 배우면서 나온 내용을 다시 설명해준다.



2-2-5. Roads or Rails


Ternary operation(우리말로 '삼항연산자'라고 한단다)을 배운다. 

형식은 이렇다. 

ex.) test ? doThisIfTrue : elseDoThis.

이 예제가 제시하는 건 Test가 True라면 Drive a Car. False라면 Buy train Tickets.

자. 따라가보자.


var timeOffWork = 7 ;

var daysNeeded = 5 ; 

timeOffWork > daysNeeded ? print ( 'Go on vacation' ) : print ( 'Go to work' ) ;

var train = 3 ;

var car = 2 ;

train > car ? print ( 'drive a car' ) : print ( 'buy train tickets' ) ;


그럼 출력되는 건, Go on vacation과 drive a car가 되겠다.



2-2-6. Which of the Three?


문제다. ternary operator는 어떤 symbol을 사용하는가?

? : 



2-2-7. Simpler Math


increment operator '++', decrement operator '--'에 대해 배운다.

지금까지는 x = 5 라고 하고, 그 뒤에 x = x+ 1 ; 이런식으로 수를 더해줬는데, 이를 빠르게 하려면 ++를 쓰라는 의미다.


let x = 5 ;

x++ ;

print ( 'x is ' + x ) ;

x-- ;

print ( 'x is now ' + x ) ;


그럼 x is 6, x is now 5라고 출력되겠다.


2-2-8. Winter Is Coming

Winter is coming이라니. Game of Thrones냐. 

이번에는 addition assignment '+=', subtraction assignment '-='를 배운다.

개미는 겨울을 나려고 40개의 씨앗을 모아두었는데 메뚜기는 하나도 없었다. 관대한 개미는 메뚜기에게 10개의 씨앗을 주기로 마음먹었다는 스토리.

이걸 코드로 표현한다면...이라는 예제다.


let ant = 40 ;

let gift = 10 ;

let grasshopper = 0 ;

ant -= gift ;

grasshopper += gift ;

print ( 'The Ant has ' + ant + ' seeds, and the Grasshopper has ' + grasshopper + ' seeds' ) ;

단순한 숫자놀음으로 생각하면 쉽겠지만, 수를 새로운 variable로 표현하면서 써내려가다 보니 어려울 수 있겠다.

결국 갖춰야 할 것은 이 Code의 스토리를 읽어나갈 수 있는 능력과 논리다.



2-2-9. More or Less?


자. 그럼 이제 문제. 정답은?


let x = 3 ; 

x += 2 ;

print ( x ) ;



2-2-10. Used Assignment Operators


지금까지 배운 걸 한번에 표현하는 예제다.


let x = 0 ;

x += 10 ;

x -= 5 ;

x++ ;

x-- ;


정답은 5. 읽으면 산수겠지만, 아무것도 없는 상태에서 이를 풀어나갈 수 있어야 하는게 이걸 배우는 취지다.



2-2-11. Console Loggin'


지금까지 출력하라는 function을 'print( )'로 사용했지만 실제로 출력을 위해 쓰이는 function은 'console.log ( )'라고 한다.

지금까지는 이해도를 높이기 위해 사용되었지만 앞으로는 print 대신 console.log가 사용될 것이다.

console.log는 보통 testing output, view warnings, error messages about the code에 사용된다. 

예제는 간단해서 pass



2-2-12. Where to Log?


너무 간단해서 pass.

Comments