위 그림은 이전 글의 마지막 부분에서 동영상을 통해 설명하던 프로그램의 블록 다이어그램 화면입니다. 보시는 것처럼 반복 횟수를 표시하는 인디케이터 오브젝트가 FOR 루프 내부에 위치하고 있기 때문에, 프로그램을 실행시켰을 때 반복 횟수에 표시되는 숫자가 1초 단위로 하나씩 증가하는 결과를 얻을 수 있었지요.
위 그림은 마우스를 이용해서 FOR 루프 내부에 있었던 인디케이터를 루프 밖으로 꺼냈을 때의 모습인데요. 이렇게 프로그램을 변경하고 실행하면, 인디케이터가 루프 바깥에 위치하고 있기 때문에 반복이 모두 끝나고 프로그램이 종료될 때, 마지막 반복 횟수 값을 업데이트하게 되지요. 그런데, 인디케이터 오브젝트의 위치에 따라 업데이트 되는 주기를 설명하기 위해서 프로그램을 변경한 것은 아니구요. 터널에 대한 부분을 이야기 하기 위해 프로그램을 수정하였습니다.
그림에서 보라색 원으로 표시하고 있는 부분이 터널입니다. 서브 다이어그램에 위치하는 데이터가 밖으로 전달되면, 저렇게 터널이라는 것이 생기는데요. CASE 구조에서도 동일한 형태의 터널을 이미 경험한 바가 있습니다.
반복문의 경계에 나타나는 터널은 위 영상에서 설명드리는 내용처럼, 터널 모드를 변경할 수 있습니다. 이 영상에서는 인덱스하기로 터널 모드를 변경하는데요. 그 결과 배열의 형태로 데이터가 전달되는 것을 알 수 있습니다.
이번에는 다른 예를 하나 들어보겠습니다. 위 영상에서는 컨트롤 배열과 FOR 루프의 관계를 보여주고 있는데요. 영상 안에서의 프로그램은 FOR 루프에서 반복 횟수를 정의하는 카운트 터미널 부분에 아무런 데이터도 연결하지 않은 상태이구요. 3개의 데이터를 가지도록 컨트롤 배열을 초기화 한 상태에서 영상이 시작됩니다. 여기서, 컨트롤 배열 오브젝트와 FOR 루프를 와이어로 연결해 주는 부분만 프로그램을 수정하였는데요. 와이어를 연결함과 동시에 자동으로 인덱싱 터널이 만들어지는 것을 보실 수 있고, 반복 횟수를 지정하지 않았지만 컨트롤 배열의 데이터 갯수만큼 반복이 이루어지는 것을 확인할 수 있습니다.
그래서 이 글을 통해 전하고 싶은 이야기가 뭐냐면,
1) 랩뷰의 반복문에서는 반복문 내부에서 처리된 데이터를 반복문 밖으로 전달할 경우 인덱싱을 통해 배열로 만들어 줄 수 있다.
2) 반복문 외부의 배열 데이터를 반복문 안으로 가져올 때 인덱싱을 통해 단일 데이터로 전달할 수 있고, 이 과정에서 FOR 루프의 경우 반복 횟수를 따로 정의하지 않아도 자동으로 횟수가 결정된다.
라는 내용입니다.
여기서 특히 2)번의 내용을 강조하고 싶은 것이, 배열의 데이터를 처리할 때 FOR 루프가 정말 유용하게 사용될 수 있다는 점 때문인데요. 다른 언어에서의 foreach문과 같이 배열을 일종의 컬렉션 요소로 취급하면서, 컬렉션의 원소들에 차례대로 접근하는 방식으로 반복이 이루어지므로 유동적인 배열을 스캔하는 작업 등을 처리하기가 용이하기 때문입니다.
'Programming > LabVIEW' 카테고리의 다른 글
While 루프 (0) | 2024.05.22 |
---|---|
Feedback Node와 Shift Register (0) | 2024.05.21 |
For 루프에 대해 알아보자. (0) | 2024.05.21 |
CASE 구조에 대해 알아보자. (0) | 2024.05.19 |
클러스터에 대해 알아보자. (0) | 2024.05.18 |