The loop knows how many times to go due to a feature of LV called auto-indexing. If you pass in an array and let it autoindex on the boarder, the loop will automatically pull out the next value in the array with each iteration--AND set the number of time to loop before stopping. Compared to the hoops C makes you jump through to use arrays, this is indeed Very Cool...
Note that if you wire both the N terminal on a FOR loop, and autoindex an incoming array, the loop will iterate the smaller of the two sizes. For example, if you wire 5 to N and pass in an array with three elements, the loop will only go three times.
Finally, always remember that a FOR loop can iterate zero times. In that case any outputs coming directly from the loop will be
the default value for the datatype. Arrays will be empty, numbers will be zero'd and (this is a biggie) references numbers will be invalid(!).
In the case of your code, I modified the logic such that it generates an array of indexes that has one element for each signal selected. This array drives the loop that sets the plot properties. Note that if the operator selects more than 5 signals the higher-numbered plots will be undefined in terms of color and label because you only specify 5 colors in an array. (Input an array of 10 items and an array of 5 items and the loop only goes 5 times.)
Note that, although it's not used here, auto indexing also works with outputs. In that case though, the loop will automatically collect an array of the output values--one element per iteration.
Mike...