If you want to do nothing for most of 4 seconds, then send an iteration count through UDP (along with some other stuff), the easiest way to do this (which needs only a While loop, no Case, no For) is to have a Wait (ms) with 4000 wired to it (a Wait of 4 seconds) and the function building and sending data through UDP, using the iteration count as you wish. You'll, of course, want to put a Stop control on the While loop to end the process.
On the other hand, if you have some process running (in a While Loop) at some unknown rate (presumably much faster than 0.25 Hz), you (obviously) cannot use the Loop Count. You can, however, initialize a Shift Register to 0, then use logic to decide if you've just crossed the "4-seconds-have-elapsed-since-the-last-time" threshold and, in a Case Statement, send your Count (in the Shift Register), increment the Count (you can do this before or after, depending if you want the first count to be 0 or 1), and do whatever you need to do to reset the Timing logic.
I rarely use Express VIs, and am not that familiar with the ins and outs of the Elapsed Time Express VI, which might handle the timing chores (deciding whether or not do do the Case) for you. Incidentally, using a Case instead of using a For loop, wiring 0 or 1 to the N input, makes it much clearer what you are doing.
Bob Schor