Really, of course, there are three loop constructs in
Java. There's "for() { }", "while() { }" and "do { } while()".
It is true that any loop could be implemented with any of the types of loop construct. However, having them both allows code to be clearer and more concise. That is, once the developer is sufficiently experienced to allow them to choose the best loop construct for each circumstance.
In general, "for" is for looping a known number of times, "while" is for looping until a condition is met, and "do while" is shunned.