Kor:반환 블록

🏴󠁧󠁢󠁥󠁮󠁧󠁿 반환 블록은 값을 반환(Report)하는 블록이다. 이 블록은 숫자부터 문자열까지 아무거나 반환이 가능하다. 배경을 바꾸고, 소리를 재생하고, 스크립트를 멈추고, 변수를 바꿀수 있는 쌓기 블록과는 달리, 반환 블록은 블록의 밑이나 위에 직접적으로 연결될수 없다(위 아래로 쌓을수 없다). 대신, 반환 블록은 다른 블록 내에서 삽입이 되어 특정한 값을 반환하는 역할을 한다. 반환 블록 중에서는 입력을 할수 있는 칸이 있을수 있다(이 블록에 다른 반환 블록을 넣을 수 있다). 이 중에서 논리 블록들은 "참"(true)또는 "거짓"(false) (불린 값이라고도 한다)를 반환하는 반환 블록의 특별한 형태이다.

반환 블록에서 반환되는 값을 확인하고 싶다면, 에디터에 들어가서 반환블록을 왼쪽 마우스로 클릭하면 작은 버블의 형태로 값이 반환된다.

모양
반환 블록의 대표적인 예시이다. 주로 타원형 형태를 띤다.

(변수) (x좌표)

이중, 논리 블록은 초록색의 육각형 형태를 띤다.

<[] = []>

반환 블록은 특정한 값을 반환한다. 이는 값이 필요한 블록에 이 블록을 집어넣을 수 있게 설계 되어 있다.

예를 들어,

 초 동안 x:  y:  \(으\)로 이동하기 

블록에는 다음과 같이 반환 블록을 넣을 수 있다.:

 ((현재 [분 v])+(1)) 초 동안 x: (x좌표) y: (y좌표) \(으\)로 이동하기 

사용
'반환' 블록에서 알 수 있듯이, 이 블록은 특정한 값을 필요로 하는 스크립트에 사용된다. 필요로 하는 값들은 아무 값 일 수 있다. 또한, 반환 블록은 다른 블록에서 필요로 할 수 있다.

이해를 돕기 위해서 두 스크립트를 비교 해보도록 하자.

⚑ 클릭했을 때 [안녕,] 을\(를\) (1) 초 동안 말하기 [세상!] 을\(를\) (1) 초 동안 말하기

⚑ 클릭했을 때 [안녕,] 을\(를\) (1) 초 동안 말하기 (사용자 이름) 을\(를\) (1) 초 동안 말하기

첫번째 스크립트에서는 메세지는 미리 정해져 있다(스크립트를 바꾸지 않는 한, 결과가 바뀌지 않는다) 하지만, 두번째 스크립트에서는 결과값이  을\(를\) 초 동안 말하기블록에 있는 (사용자 이름)의 값에 따라 메세지가 정해지게 된다(스크립트를 바꾸지 않아도, (사용자 이름)에 의해 결과가 달라지게 된다).

그리고 반환 블록은 반환 블록 안에 들어갈 수 있기 때문에,  와\(과\) 결합하기</sb> 라는 반환 블록 안에 반환 블록을 집어놔 다음과 같이 표현할 수 있다.

⚑ 클릭했을 때 ([안녕, ] 와\(과\) (사용자 이름) 결합하기) 을\(를\) (7) 초 동안 말하기

블록 종류
현재 스크래치 3.0에는 30개의 반환 블록들이 있다(추가 블록 제외). 논리 블록까지 합치면 총 39개가 있다.

참고로, 스크래치 2.0에는 총 37개의 반환 블록이 있었다.

동작

 * (x좌표)//스프라이트의 x좌표 값(숫자 값)을 반환한다.</sb>
 * (y좌표)//스프라이트의 y좌표 값(숫자 값)을 반환한다.</sb>
 * (방향)//스프라이트의 방향 값(숫자 값)을 반환한다(0~360).</sb>

형태

 * (모양 [ v])//스프라이트의 모양의 번호(숫자 값)이나 이름을 반환한다.</sb>
 * (배경 [ v])//배경의 모양의 번호(숫자 값)이나 이름을 반환한다.</sb>
 * (크기)//스프라이트의 크기(숫자 값)을 반환한다.</sb>

소리

 * (음량)//음량 값(숫자 값)을 반환한다.</sb>

감지

 * <[ v]에 닿았는가?>//논리 블록 - 스프라이트가 특정한 것에 닿았는지(불린 값)를 반환한다.</sb>
 * <(#555555)색에 닿았는가?>//논리 블록 - 스프라이트가 특정한 색에 닿았는지(불린 값)를 반환한다.</sb>
 * <(#777777)색이 (#999999)색에 닿았는가?>//논리 블록- 스프라이트가 특정한 색에 닿았는지(불린 값)를 반환한다.</sb>
 * ([ v]까지의 거리)//스프라이트와 특정 물체(?)까지의 거리(숫자 값)를 반환한다.</sb>
 * (대답)// 대답 블록에 대답한 값을 반환한다.</sb>
 * <( v)키를 눌렸는가?>//논리 블록 - 사용자가 특정한 키보드 키를 눌렀는지(불린 값)를 반환한다.</sb>
 * <마우스를 클릭했는가?>//논리 블록 - 사용자가 마우스(왼쪽 마우스)를 클릭했는지(불린 값)를 반환한다.</sb>
 * (마우스의 x좌표)//마우스 포인터의 x좌표(숫자 값)을 반환한다.</sb>
 * <sb>(마우스의 y좌표)//마우스 포인터의 y좌표(숫자 값)을 반환한다.</sb>
 * <sb>(음량)//마이크에서의 음량(숫자 값)을 반환한다.</sb>
 * <sb>(( v)의[ v]::sensing)//무대나 다른 스프라이트에서의 배경 번호, 배경 이름, 음량, 변수(지역변수)의 값을 반환한다.</sb>
 * <sb>(현재 [ v])//현재 날짜의 년,월,일,요일,시,분,초 값(숫자 값)을 반환할 수 있다.</sb>
 * <sb>(2000년 이후 현재까지 날짜 수)//2000년 1월 1일 부터 현재까지 지난 날짜 수(숫자 값)을 반한한다.</sb>
 * <sb>(사용자 이름)//사용자 이름을 반환한다.</sb>

연산

 * <sb>( + )//두 값을 더한 값을 반환한다.</sb>
 * <sb>( - )//두 값을 뺀 값을 반환한다.</sb>
 * <sb>( * )//두 값을 곱한 값을 반환한다.</sb>
 * <sb>( / )//두 값을 나눈 값을 반환한다.</sb>
 * <sb>(부터 사이의 난수)//ㄱ부터 ㄴ까지의 난수값(정수 값)을 반환한다. 소수점이 포함될 경우, 실수인 난수 값을 반환한다.</sb>
 * <sb>< > >//오른쪽 값이 왼쪽 값보다 작은지(불린 값)를 반환한다.</sb>
 * <sb>< < >//오른쪽 값이 왼쪽 값보다 큰지(불린 값)를 반환한다.</sb>
 * <sb>< = >//오른쪽 값이 왼쪽 값과 같은지(불린 값)를 반환한다.</sb>
 * <sb><<> 그리고 <>>//두 논리 블록이 모두 참인지(불린 값)를 반환한다.</sb>
 * <sb><<> 또는 <>>//두 논리 블록중 하나라도 참인 값이 있는지(불린 값)를 반환한다.</sb>
 * <sb><<>이\(가\) 아니다>//논리 블록의 반대되는 불린 값을 반환한다.</sb>
 * <sb>( 와\(과\) 결합하기)//두 문자를 결합하여 반환한다.</sb>
 * <sb>(의 번째 글자)//문자의 번째 값을 반환한다.</sb>
 * <sb>(의 길이)//문자의 길이(숫자 값)를 반환한다</sb>
 * <sb>< 이\(가\) 을\(를\) 포함하는가?>//해당 문자에 특정 문자가 포함되어있는지(불린 값)를 반환한다.</sb>
 * <sb>( 나누기 의 나머지)//앞 숫자를 뒤숫자로 나눈 나머지를 반환한다.</sb>
 * <sb>(의 반올림)//숫자를 반올림한 값을 반환한다.</sb>
 * <sb>([ v]\(\)::operators)</sb>

변수

 * <sb>(변수)//변수 값을 반환한다.</sb>
 * <sb>(리스트::list)//리스트의 값을 반환한다.</sb>
 * <sb>([ v]리스트의 번째 항목)//리스트의 번째의 값을 반환한다.</sb>
 * <sb>([ v]리스트에서 항목의 위치)//리스트에서 가 있는 위치를 반환한다.</sb>
 * <sb>([ v]의 길이::list)//리스트의 길이를 반환한다.</sb>
 * <sb><[ v]이\(가\) 을\(를\) 포함하는가?>//리스트에서 가 존재하는지(불린 값)을 반환한다.</sb>