What are the basic similarities and distinctions among the three types of loops? In what situations would one type of loop be preferred over the others? Justify your answer. There are many situations where infinite loops may occur. Discuss those situations and provide best practices for each of the loop types that help avoid writing infinite loops. Using the book by Farrell 7/8th edition of Java Programming.