Olá Stephanie. Espero que esteja bem!
Essa dúvida é muito comum no começo, mas com a prática você vai saber diferenciar corretamente.
O for é usado quando sabemos quantas vezes o código vai ser repetido. Digamos que vamos percorrer uma lista. O código precisa repetir quantas vezes for o tamanho dessa lista seja 10 ou 50 vezes. Agora digamos que numa tela de login vamos permitir que o usuário tente a senha apenas 3 vezes. Sabemos que esse código precisa repetir no máximo 3 vezes.
Contudo, se vamos permitir que o usuário possa tentar infinitamente até acertar, é melhor usar o while pois ele pode acertar de primeira ou na oitava tentativa. Como não sabemos quantas vezes o código precisa repetir, o while é a melhor escolha. Ele repete até uma condição acontecer. Nesse caso até a senha estar correta. Em qualquer caso assim, prefira o while.
Mas há casos em que o código precisa aparecer pelo menos uma vez. Aí entra o do...while. A diferença aqui é que ele testa a condição no final. Ele é menos utilizado mas tem sua função. Às vezes você pode criar um menu que precisa aparecer ao menos uma vez antes de testar se o usuário vai clicar em sair, ou em outra opção do menu. Nesse caso mesmo que a primeira opção do usuário seja sair, o menu precisa ser mostrado pelo menos uma vez. Em casos assim, é legal utilizar o do...while.
Espero ter ajudado. Grande abraço!!