You are on page 1of 6

Do-while

La instrucción "do-while", es otra estructura de control repetitiva que se


caracteriza porque ejecuta un conjunto de instrucciones sin realizar previamente la
evaluación de la expresión relacional y/o lógica. Esto significa utilizando "do-
while" la secuencia de acciones se realizará por lo menos una vez, pese a obtener
un valor falso.

PSEUDOCÓDIGO

haga

secuencia_de_acciones

mientras (expresión_lógica)

Se lee de la siguiente forma: Haga la secuencia de acciones mientras la expresión


lógica sea verdadera. Esto significa que la primera vez la secuencia de acciones se
realiza sin haber verificado la expresión lógica. Si luego de realizar UNA VEZ la
secuencia de acciones, se obtiene un resultado verdadero (true) se repite la
secuencia de acciones, y si se obtiene un falso, continúa con las instrucciones fuera
de la estructura repetitiva. Gráficamente se vería así:

DIAGRAMA DE FLUJO DE DATOS


LENGUAJE DE PROGRAMACIÓN JAVA

do

secuencia de acciones;

} while (expresión lógica);

Se debe observar que ésta es la única instrucción que finaliza con ";" luego de una
llave (}) e indica el fin de la instrucción do-while.

EJEMPLO

Realice un programa que permita obtener el factorial de un número dado por el


usuario, utilizando la instrucción do-while.

ANÁLISIS (Exactamente el mismo proceso que en la estructura while)

Lectura 1: Comprender. El factorial de un entero positivo n, se define como


el producto de todos los números enteros positivos desde 1 hasta n.

Matemáticamente 5! = 5*4*3*2*1 ó a la inversa: 5! = 1*2*3*4*5


Una vez conocido el proceso matemático, es conveniente hacer una
representación gráfica de todas las variables que intervienen.

Así en la gráfica puede observarse es necesario ir incrementando el valor en 1


(valor constante - CONTADOR) para llegar hasta el 5 (número dado por el
usuario); es decir, 1*2 = 2, este resultado se multiplica por 3 (2*3 = 6), el 6 se
multiplica por 4 (6*4=24) y, 24 se multiplica por 5 que es el número del cual se
quiere obtener el factorial (24 * 5 = 120)por lo que es posible observar como los
resultados de las multiplicaciones se acumulan hasta obtener el factorial.

Lectura 2: Qué datos necesito para solucionar el problema?

Entradas:

int num

Lectura 3: Qué resultados se quieren obtener?


Salidas:

int fact

DISEÑO

Proceso Factorial
Escribir 'Ingresar número'
Leer num //Dato ingresado por el usuario
cont<-0 //Inicializa el contador, se realiza una SOLA VEZ, va fuera del ciclo
fact<-1 //Inicializa el acumulador, se realiza una SOLA VEZ, va fuera del ciclo
Haga
fact<-fact*num //Instrucción de acumulador, se realiza VARIAS VECES, va
dentro del ciclo
cont<-cont+1 //Incremento constante del contador, se realiza VARIAS VECES,
va dentro del ciclo
Mientras (cont<=5)
Escribir fact
FinProceso

DFD

Como en PseInt no existe la Sentencia Do While se ha realizado con la


instrucción Repeat, cuyo cambio está en la condición, ya que repite - hasta
que se cumpla la condición.
El diseño toma la mayoría de datos de la fase de análisis, para incorporarlo a un
proceso secuencial. Al distinguir cuáles son las acciones que se realizan una sola
vez y las que se realizan varias veces, éstas últimas son aquellas que van dentro
de las instrucciones repetitivas.

IMPLEMENTACIÓN
public static void main(String[] args) {

import java.util.Scanner; // se importa la clase Scanner

Scanner entrada=new Scanner(System.in);// se declara e inicializa una instancia


de la clase Scanner.
int fact, num, cont;
System.out.print("Ingrese un numero: "); // Imprime un mensaje
num = Integer.parseInt(entrada.next()); //Leer num
fact=1; //Inicializa acumulador
cont=1; //Inicializa contador
do {

fact = fact * cont; //Instrucción de acumulación


cont = cont + 1; //Instrucción de contador
}while (cont <= 5);
System.out.println("Factorial: "+ String.valueOf(fact));
}

You might also like