Introduction
So far, we have looked at programs that consist of a series of statements that the Java compiler executes sequentially. However, in certain cases, we might need to perform actions based on the current state of the program.
Consider the example of the software that's installed in an ATM machine – it performs a set of actions, that is, it allows a transaction to occur when the PIN that's been entered by the user is correct. However, when the PIN that's been entered is incorrect, then the software performs another set of actions, that is, it informs the user that the PIN does not match and asks the user to reenter the PIN. You'll find that such logical constructs that depend upon values or stages are present in almost all real-world programs.
There are also times where a particular task might need to be performed repeatedly, that is, for a particular time duration, for a particular set number of times, or until a condition is met. Continuing from our example of the ATM machine,...