O comando do while é um comando de laço (looping) que lembra a mistura do comando do e if. O comando do while é muito útil e a função dele é fazer um laço até que uma condição seja satisfeita, ou seja, faça algo até onde eu mandei. A sintaxe é do while (condição). Como a idéia deste comando de laço envolve uma condição, é interessante que esta parte seja apresentada após o comando que é a ideia principal do comando condicional.
Para exemplificar o comando do while escreveremos o programa abaixo.
! ! Exemplo do comando "do while" ! program prog6a implicit none ! integer :: i,maximo,somatorio i=10 maximo=1000 somatorio=-1000 ! do while (somatorio < maximo) somatorio = somatorio + i ! if(somatorio == maximo)then write(*,*)'somatorio =',maximo end if end do ! end program prog6a !
A estrututra do laço condicional dowhile apresenta de uma forma ligeiramente diferente em comparação com o do explícito. Observerve o programa e em seguida o fluxograma.
program dw implicit none ! integer:: i, n ! i=1; n=5 ! do while (i<=n) write(*,*) i i=i+1 end do ! stop end program dw
Observe que no caso do do while é necessário atribuir valores prévios para i e n e dentro do laço o contador i possui função dupla que é ser impresso na tela e também como condição de parada. Nesta estrutura somente existe a condição de parada, sendo que a condição inicial deve ser previamente estabelecida antes do laço.