Lesson3 For Loop(포 루프)

안녕하세요. 알렉스 입니다. 오늘은 제가 개인적으로 좋아하는 For Loop에 대해서 설명 드리도록 하겠습니다.

사진1) For루프 선택


블록 다이어 그램에서 For Loop의 선택을 위 사진처럼 하시면 됩니다. For 루프가 이전의 While 루프와 다른점이 있다면 반복하는 횟수를 정할수가 있습니다.

사진2) For 루프 구조
For 루프에는 크게 3가지로 구성되어 있습니다. 카운터 터미널, 반복 터미널 그리고 사각 For 루프이죠. 실제 코딩은 For 루프 내부에서 주로 이루어 집니다.

카운터 터미널 : For루프가 반복될 횟수를 입력한다. 입력값이 0이면 For 루프는 실행을 안한다.

반복 터미널 : For루프가 반복할때마다 +1씩 증가 한다. 즉 5를 반복했으면 마지막으로 4가 출력된다. 그 이유는 0부터 시작하기 때문이다.


사진3) For 루프 순서도



사진3의 순서도를 보면 시작 이후에 조건을 보게 되어 있습니다. 이는 카운터 터미널이 몇회인지 보고 For 루프가 몇회 반복했는지 비교후 같으면 참으로 넘어가게 되는 것입니다. 만약 카운터 터미널에 값이 0이면 For 루프는 코드를 실행하지 않고 끝나게 됩니다.


사진4) 카운터 터미널쪽 에러(Error)


카운터 터미널에 정수로 지정을 하지 않는다면 사진4 처럼 에러가 발생하게 된다. 하지만 배열(차후설명)을 이용해서 인덱스 연결을 하면 For 루프는 배열의 크기에 따라 반복한다.


사진5) 카운터 터미널에 상수 생성

사진6) 반복터미널에 인디게이터 생성

사진5,6번에서 각각 상수와 인디게이터를 생성합니다.



사진7) For 루프를 돌렸을때 정수값 비교

사진7은 For 루플를 실행후 나타난 결과 입니다. 반복 터미널에 연결된 인디게이터는 4를 나타내고 있습니다. 그 이유는 앞에서 이야기 했듯이 시작을 0부터 하기 때문입니다. 하지만 지금 상태에서는 For 루프가 빨리 돌기 때문에 기다림 함수를 추가하겠습니다.




사진8) For 루프에 기다림 함수 추가



사진9) For 루프는 1회 반복후 0.5초 대기

이제 기다림 함수를 추가해서 For루프의 진행 상황을 육안으로 확인 할수 있습니다. 500ms는 0.5초를 말합니다.




사진10) 배열상수 선택

사진11) 배열상수를 문자열 배열로 변경


사진10,11과 같이 빈 배열상수를 문자열 배열상수로 바꿉니다. 배열은 수학시간때 배운 배열과 수학적 특성이 같습니다. 지금 만드는 배열은 1차 배열로 오직 1열만 갖습니다.


사진12) 문자열 배열의 너비를 넓히기



사진13) 문자열 배열의 원소개수 나타내기

문자를 입력하기 쉽게 너비을 넓혀주고 원소의 개수도 여러개 나타내서 문자를 입력하기 쉽도록 합니다.


사진14) 문자열 배열을 For 루프에 연결하기

사진14는 인덱스와 인덱스가 비활성화 됬을때의 차이점을 설명하기 위해서 만들었습니다. 일단 인덱스는 배열의 0번째(아니면 1번째)원소부터 차례대로 나오는 것입니다. 즉 반복터미널이 0일때 'Hello1'이 나오고 1일때 'Hello2'가 나옵니다. 하지만 인덱스가 비활성화 되 있다면 For 루프안에서 출력될때 배열이 통째로 출력됩니다.

사진15) 인덱스 부분에 인디게이터 생성


사진16) For 루프 내부에 문자열(인덱스 연결)과 문자열 배열(인덱스 비활성화 연결) 생성 


그럼 각각에 인디게이터를 생성하겠습니다. 인덱스 쪽은 문자열만 나오고 인덱스가 비확성화 된 부분은 인디게이터 문자열 배열이 생성됬음을 알수 있습니다.

사진17) 배열과 문자열 비교

전에 설명했듯이 인덱스 부분은 문자가 순차적으로 출력됩니다. 하지만 인덱스가 비활성화 된 부분은 문자열 배열이 통째로 출력이 됩니다.





사진18) 같음 추가

For 루프의 기능중에 하나인 인덱스 조건 출력에 대해서 설명드리겠습니다. 사진 18과 같이 같음 함수를 추가해 줍니다.

사진19) 인덱스에 조건 설정

그리고 사진 19와 같이 인덱스를 가르킨 상태에서 조건적을 선택해 줍니다.

사진20) 조건이 설정된 인덱스



사진21) 조건적용이 완성된 코드

최종적으로 사진 21과 같이 완료시켜 주시기 바랍니다. 사진21에 양쪽은 인덱스가 활성화 되어 있습니다.




사진22) 사진21 For 루프 내부 코드 _ 사진3 참조

사진22에서 보면 For루프 내부에서 일어나는 순서도 입니다. 조건이 참이든 거짓이든 무조건 끝으로 가게 되어 있습니다. 하지만 For루프는 반복을 하기때문에 같은 코드가 반복되게 됩니다.
 사진22의 조건은 'Hello3'과 같은지 틀린지를 확인하게 됩니다. 같다면 코드에서 배열로 처리됩니다. 거짓이면 바로 끝나게 되지요.




사진23) 실제 결과값


실제 출력된 배열 입니다. 예상했듯이 Hello3 1개의 원소밖에 없습니다. 

For 루프는 LabVIEW에서 유용하게 쓰이기 때문에 많이 연습하시는 것을 추천 드립니다.

긴글 읽어주셔서 감사합니다.




Discord Community Link



댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson5 Flat Sequence(플랫 시퀀스 구조)