Почти ничем, из while легко сделать for, а из for легко сделать while.
Просто для удобства сделали так, что while выполняется, пока истинно заданное условие, которое проверяется до или после выполнения одного цикла, а for выполняется определённое в счётчике количество раз.