The following types are written in C++, but apply to multiple languages.
Checks condition for truthfulness before executing any of the code in the loop.
[1] If condition is initially false, the code inside the loop will never be executed.
Checks condition for truthfulness after executing the code in the loop.
It allows a program to iterate through a data structure without having to keep track of an index.