스위치 블록

스위치 블록은 프로그래밍 블록 시퀀스를 둘 이상 수용할 수 있는 컨테이너입니다. 각 시퀀스는 케이스라고 합니다. 스위치 블록 초반의 테스트는 어떤 케이스가 실행될지를 결정합니다. 스위치 블록이 실행될 때마다 오직 한 케이스만이 실행됩니다.
여기에 나온 스위치 블록 테스트는 센서 데이터 값 또는 데이터 와이어의 값에 따라 어떤 케이스를 실행할지 결정할 수 있습니다. 케이스 하나가 선택되고 실행된 후, 프로그램은 스위치 블록 뒤 임의의 블록으로 계속됩니다.

아래 프로그램은 로봇이 "Touch"라고 말하게 한 후, 터치 센서가 눌려 있는지 알아보기 위한 테스트입니다. 만약 눌려 있으면, 참(상단) 케이스가 실행되고, 로봇은 "Thumbs up"을 표시하며 "Yes"라고 말합니다. 터치 센서가 눌려 있지 않으면, 거짓(하단) 케이스가 실행되고, 로봇은 "Thumbs down"을 표시하며 "No"라고 말합니다. 스위치 블록이 끝나면 로봇이 "Thank you"라고 말합니다.
참 케이스
거짓 케이스

로봇이 "Touch"라는 말을 마치자마자 터치 센서가 테스트를 받습니다. 그 순간에 센서가 눌려 있는 상태이면 스위치 블록은 참 케이스를 실행하고, 그러지 않으면 거짓 케이스를 실행합니다.
팁과 요령
스위치 블록은 센서 데이터 값이나 데이터 와이어가 일정한 값에 도달하기를 기다리지 않습니다. 스위치 블록이 시작되자마자 테스트가 실행되며, 테스트 후 케이스 중 하나가 즉시 선택되어 실행됩니다.
위 프로그램에서는 스위치 블록이 참 케이스를 실행할 수 있도록 테스트 전에(또는 심지어 프로그램이 시작되기 전에) 터치 센서를 누르고 테스트 중에 계속 누르고 있을 수 있습니다. 센서를 누른 상태에서도 여전히 로봇이 "Yes"라고 말하는지 알아보세요.
로봇이 그 상황에서 아무것도 하지 않기를 원한다면 스위치 블록에 있는 어떤 케이스든 비워 두세요. 위 프로그램 내 거짓 케이스에서 블록 2개를 삭제해 보고 어떤 일이 벌어지는지 확인하세요.
탭 뷰
스위치 블록은 위 예처럼 플랫 뷰에 표시되거나 아래 나온 대로 탭 뷰에 표시될 수 있습니다. 플랫 뷰에서는 보이는 모든 케이스가 서로 행이 다릅니다. 탭 뷰에서는 한 번에 오직 한 케이스만 보입니다.

탭 뷰를 사용하면 프로그램이 화면에 차지하는 공간을 줄일 수 있습니다. 이 보기는 스위치 블록의 실행 방식에 영향을 주지 않습니다.



플랫/탭 선택
참 케이스
거짓 케이스

플랫 뷰와 탭 뷰를 오가며 스위치 블록을 전환하려면, 플랫/탭 선택을 클릭하세요.

탭 뷰에서 스위치 블록 안의 다른 케이스를 표시하려면, 스위치 블록 테두리 상단의 다른 탭을 클릭하세요.
팁과 요령
탭 스위치의 모든 케이스에 있는 블록은 한 번에 몇 개만 볼 수 있다 하더라도 프로그램의 일부입니다.
스위치 테스트 선택


모드 선택
포트 선택
입력

모드 선택을 사용하여, 스위치 블록이 어떤 케이스를 실행할지 선택하는 데 사용할 테스트 유형을 선택하세요. 센서값 또는 데이터 와이어 값을 테스트할 수 있습니다.

포트를 사용하는 모드를 선택하는 경우, 포트 선택을 사용하여 해당 포트가 센서 또는 모터와 연결된 EV3 브릭의 포트와 일치하는지 확인하세요.

사용 가능한 입력은 모드에 따라 바뀝니다. 어떤 모드에서는 센서값을 경계값과 비교하고, 또 어떤 모드에서는 특정한 센서값이 있는지 테스트할 수 있습니다. 모드는 아래 설명되어 있습니다.
센서 경계값 테스트
스위치 블록은 숫자 센서 데이터 값을 읽고 경계값과 비교하여 참 또는 거짓 결과를 얻는 여러 가지 모드를 수용합니다. 예를 들면, 컬러 센서 - 비교 - 반사광 강도 모드에서는 컬러 센서의 반사광 강도가 50보다 작은지를 테스트할 수 있습니다.

이 모드에서 스위치 블록은 케이스 2개를 수용합니다. 테스트 결과가 참이면 참 케이스가 실행되고, 그러지 않으면 거짓 케이스가 실행됩니다.
팁과 요령
참 케이스는 체크 마크가 표시된 플랫 뷰의 상단 케이스입니다. 거짓 케이스는 "X"라고 표시된 하단 케이스입니다.
센서 경계값을 포함한 모드를 사용하려면, 비교 유형(예를 들면, 보다 작음)을 선택하고, 센서 데이터와 비교할 경계값(예를 들면 50)을 입력하세요. 스위치 블록은 단일 센서값을 가져다 경계값과 비교하여 참 또는 거짓 결과를 얻습니다.
이 프로그램에서 스위치 블록은 컬러 센서 - 비교 - 반사광 강도 모드를 사용하여 반사광 강도가 50보다 작은지를 테스트합니다. 만약 그렇다면 스위치 블록은 "Low"를 표시하고, 그러지 않으면 "High"를 표시합니다. 새로운 센서 테스트에 따라 디스플레이가 계속 업데이트될 수 있도록 스위치 블록은 루프에서 반복됩니다.
팁과 요령
센서 테스트는 매우 빠르게 벌어집니다. 위 예에서 루프가 없다면, 프로그램은 센서를 한 번만 테스트하고 사용자가 알아차리지 못할 정도로 매우 빨리 끝날 것입니다.
특정한 센서값 테스트
다음 모드에서 스위치는 특정한 센서값이 있는지 테스트할 수 있습니다. 스위치 블록에 테스트하려는 서로 다른 값에 대응하는 케이스를 둘 이상 생성할 수 있으며, 스위치 블록은 일치하는 케이스를 선택합니다.
모드사용법참조
브릭 버튼 - 측정 어떤 브릭 버튼이 눌려 있느냐에 따라 둘 이상의 케이스 중에 선택합니다.브릭 버튼 사용
브릭 버튼 - 비교 선택한 브릭 버튼 중 하나가 눌려 있거나 눌리지 않았거나 접촉 후 떨어졌는지 여부에 따라 두 케이스 중에서 선택합니다.브릭 버튼 사용
컬러 센서 - 측정 - 색상 어떤 색상이 감지되느냐에 따라 둘 이상의 케이스 중에서 선택합니다.컬러 센서 사용
컬러 센서 - 비교 - 색상 선택한 색상 중 하나가 감지되는지 여부에 따라 두 케이스 중에 선택합니다.컬러 센서 사용
적외선 센서 - 측정 - 원격 IR 비콘에서 어떤 버튼이 눌려 있는지에 따라 둘 이상의 케이스 중에 선택합니다.적외선 센서 원격 모드 사용
적외선 센서 - 비교 - 원격 IR 비콘에서 지정된 버튼이 눌려 있는지 여부에 따라(또는 지정된 버튼 모음 중 하나가 눌려 있는지 여부에 따라) 두 케이스 중에 선택합니다.적외선 센서 원격 모드 사용
터치 센서 터치 센서가 눌려 있는지, 눌리지 않았는지, 접촉 후 떨어졌는지 여부에 따라 두 케이스 중에 선택합니다.터치 센서 사용
초음파 센서 - 비교 - 존재 유무 감지 "listen only" 모드에서 초음파 신호가 감지되는지 여부에 따라 두 케이스 중에 선택합니다.초음파 센서 사용
메시징/통신 모드 메시지 값에 따라 두 케이스 중에 선택합니다.메시징/통신 모드
복수 값 테스트
스위치 블록의 센서 측정 모드에서는 테스트할 센서값을 여러 개(둘 이상) 지정할 수 있습니다. 값마다 스위치 블록의 케이스를 다르게 부여할 수 있습니다. 예를 들면, 컬러 센서 - 측정 - 색상 모드에서는 검정, 흰색, 빨강이 있는지 테스트하고 색상 하나에 케이스 하나씩 총 3가지 케이스를 생성할 수 있습니다.




케이스 추가
케이스 값
기본 케이스
케이스 삭제

센서 측정 모드에서 케이스를 여러 개 사용하려면, 케이스 추가 버튼을 클릭하여 원하는 개수의 케이스를 생성하세요. 케이스별로 케이스 값을 클릭하여 센서에 대한 값을 목록에서 선택하세요. 케이스 삭제 버튼을 클릭하여 케이스를 삭제할 수 있습니다.

기본 케이스 버튼을 클릭하여 케이스 하나를 기본 케이스로 표시하세요. 센서가 스위치 블록에 있는 어떤 케이스와도 일치하지 않는 값을 감지하면 기본 케이스가 실행됩니다.

프로그래밍 예 참조: 컬러 센서 사용에서 감지되면 각기 "Red", "Green" 그리고 "Blue" 라고 말합니다.

프로그래밍 예 참조: 브릭 버튼 사용에 있는 브릭 버튼 제어판.
데이터 와이어의 값 테스트
논리, 텍스트, 숫자 모드에서 스위치 블록은 데이터 와이어의 입력 값에 따라 어떤 케이스를 실행할지 선택할 수 있습니다.
모드
논리 모드
논리 모드에서 스위치 블록은 논리 입력의 값에 따라 참 케이스와 거짓 케이스 중에 선택합니다. 데이터 와이어를 사용하여 프로그래밍 블록의 논리 출력을 논리 입력에 연결할 수 있습니다.

프로그래밍 예: 비교 블록을 참조하세요.
텍스트 모드
텍스트 모드에서 스위치 블록은 값 하나에 케이스 하나씩 지정한 둘 이상의 텍스트 값을 텍스트 입력 값과 비교합니다. 텍스트 입력과 일치하는 값을 가진 케이스가 실행됩니다. 일치하는 값이 없으면, 기본 케이스가 실행됩니다.

복수 케이스를 생성하는 것에 대한 자세한 내용은 복수 값 테스트를 참조하세요. 텍스트 모드의 각 케이스는 해당 케이스 값에 직접 입력할 수 있는 텍스트 값을 갖게 됩니다.
이 예에서, 텍스트 모드의 스위치 블록은 어떤 메시지가 수신되는지에 따라 메시징 블록의 출력을 사용하여 3가지 케이스 중에 선택합니다.
숫자 모드
숫자 모드에서 스위치 블록은 값 하나에 케이스 하나씩 지정한 둘 이상의 숫자값을 숫자 입력 값과 비교합니다. 숫자 입력과 일치하는 값을 가진 케이스가 실행됩니다. 일치하는 값이 없으면, 기본 케이스가 실행됩니다.

복수 케이스를 생성하는 것에 대한 자세한 내용은 복수 값 테스트를 참조하세요. 숫자 모드의 각 케이스는 해당 케이스 값에 직접 입력할 수 있는 숫자값을 갖게 됩니다.
이 예에서, 숫자 모드의 스위치 블록은 변수 블록의 출력을 사용하여 3가지 케이스 중에 선택합니다. 스위치 블록의 기본 케이스는 비어 있으므로, "동작" 변수의 값은 1, 2, 3을 제외한 값이며 스위치 블록은 아무것도 하지 않을 것입니다.
스위치 블록 크기 조정
스위치 블록은 보통 자동으로 확장하여 블록 안 케이스에 새로운 프로그래밍 블록을 드래그해서 놓을 공간을 만듭니다. 필요한 경우 케이스의 크기도 직접 조정할 수 있습니다. 플랫 뷰에서 스위치 블록 안 케이스 크기를 조정하려면, 크기를 조정하려는 케이스 옆 스위치 블록의 왼쪽이나 오른쪽 테두리를 클릭한 다음, 바깥에 보이는 블록 크기 조정을 드래그하세요.

팁과 요령
탭 뷰에서 모든 케이스는 동일한 크기를 표시합니다. 케이스 하나의 크기를 조정하여 크게 만들면 모든 케이스가 더 큰 동일한 공간에 표시됩니다.
입력
스위치 블록에 사용 가능한 입력은 선택한 모드에 따라 달라집니다. 블록에 직접 입력 값을 입력할 수 있습니다. 데이터 와이어를 통해 프로그래밍 블록의 출력에서 입력 값을 제공할 수 있습니다.
입력유형비고
논리 논리논리 모드에서 케이스를 선택하는 데 사용
숫자 숫자숫자 모드에서 케이스를 선택하는 데 사용
텍스트 텍스트텍스트 모드에서 케이스를 선택하는 데 사용
비교 유형 숫자경계값 입력을 포함한 모드의 비교 유형.
0: = (같음)
1: ≠ (같지 않음)
2: > (보다 큼)
3: ≥ (보다 크거나 같음)
4: < (보다 작음)
5: ≤ (보다 작거나 같음)
경계값 숫자숫자 센서값에 따라 참 케이스나 거짓 케이스를 선택하기 위해 센서 데이터와 비교하는 값.
(개별 센서 유형의 입력)센서 데이터에 대한 자세한 내용은 개별 센서 유형에 대한 도움말을 참조하세요.
스위치 블록
빠른 연결