That’s a good question, and there is no definite answer. It depends on your goal. Assuming you have got several states, you would have to write three if-statements with the same lines of code over and over again. Redundancy is something we want to avoid as it makes the code longer than necessary.
Executing var nextState = currentState.GetNextStates(); each frame does not have any noticeable impact on the performance because we do not make the computer calculate anything complex. Nevertheless, if we can avoid executing code, we usually do that. This is the first real project in our course, though, which is why Rick opted for a straightforward solution.