3.5.3 Comando do while

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 $if$ 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.

Figura 3.3: Exemplo do fluxograma para o laço do while.
Image laco-do-while