Sei sulla pagina 1di 6

aprenderaprogramar.

com

BuclesForNextStep,DoWhile Loop,DoLoopWhile(Estructuras derepeticin)(CU00326A)


Seccin:Cursos
Categora:CursoVisualBasicNivelI Fechaltimaactualizacin:2012 Autor:MarioR.Rancel Resumen:Entregan25delCursoVisualBasicNivelI

12

20062012aprenderaprogramar.com

BuclesForNextStep,DoWhileLoop,DoLoopWhile.

ESTRUCTURASDEREPETICIN(BUCLES)CONVISUALBASIC Vamos a ver cmo materializar con Visual Basic estructuras de repeticin que permitirn que en nuestros programas se realice un proceso n veces. En concreto veremos las instrucciones Desde Siguiente(ForNext)consuclusulaPaso(Step),lainstruccinMientrasHacer(DoWhileLoop) y la instruccin Hacer Repetir Mientras (Do Loop While). Muchas veces podremos optar indistintamenteporusarunainstruccinuotra.Enotroscasos,esrecomendabledecantarseporuna deellasporhacerelprogramamslegibleosencilloqueusandootrasopciones. INSTRUCCINDESDE...SIGUIENTE(FOR...NEXT)YCLUSULAPASO(STEP) LasintaxisaemplearconVisualBasiceslasiguiente: ForVAR=ViToVf Instruccin1 Instruccin2 Instruccinn NextVAR El incremento que sufre el contador es, por defecto, unitario. Es decir, el primer valor que toma VAR en el bucle ser Vi, el segundo Vi + 1, el tercero (Vi + 1) + 1, etc. La modificacin de dicho valor de incremento la realizaremos a travs de la clusula Step despus del valor Vf. Step 2 implicar que en cada repeticin del bucle el contador se incremente en dos unidades, Step 5 implicar que en cada repeticin del bucle el contador se incremente en cinco unidades. Un paso negativo del tipo Step1 supone que el contador decrece en vez de incrementarse. Si el paso es negativo, Vi necesariamente habrdesermayorqueVf,yaqueencasocontrarionoseproducirlaentradaenelbucle. Con este cdigo se nos muestra en pantalla 3 veces hola, gracias a que se ha invertido el sentido del bucle:
Option Explicit Dim VAR As Integer Dim Vi As Integer Dim Vf As Integer Private Sub Form_Load() Show Vi = 1 Vf = 3 For VAR = Vf To Vi Step 1 '[Tambin supondra tres repeticiones For VAR = Vi to Vf] Print "hola" Next VAR End Sub

20062012aprenderaprogramar.com

BuclesForNextStep,DoWhileLoop,DoLoopWhile.

Con Visual Basic resulta admisible usar Next sin indicar la variable que est sirviendo de gua del bucle, pues todo bucle ha de tener un cierre. Sin embargo, no locreemos recomendable pues puede dificultarlalecturaydepuracindelosprogramas. La instruccin For ... Next es anidable dentro de s misma o dentro de otros tipos de bucles o estructuras,debiendoseguirlaspautasqueyahemoscomentado. EJERCICIO Transformar en cdigo el siguiente planteamiento: queremos generar un programa que pida un nmerodel1al10ynosmuestrelatablademultiplicarcorrespondiente. SOLUCIN Hemos realizado la pregunta relativa al nmero cuya tabla se desea conocer utilizando un InputBox. Igualmente vlido hubiera sido hacerlo con un Label contenedor de la pregunta y un TextBox donde elusuariointroducelainformacin. Grficamente:
20062012aprenderaprogramar.com Option Explicit Dim T As Integer Dim i As Integer Private Sub Form_Load() Show Form1.Caption = "Tabla" T = Val(InputBox("Qu tabla quiere conocer?" & vbCrLf & _ "(Introduzca un nmero de 1 a 10)", "Nmero?")) Labeltabla.FontBold = True Labeltabla.Alignment = 2 Labeltabla = "TABLA DEL " & T & vbCrLf & vbCrLf For i = 1 To 10 Labeltabla = Labeltabla & T & " * " & i & " = " & T * i & vbCrLf Next i End Sub

BuclesForNextStep,DoWhileLoop,DoLoopWhile.

EJERCICIO Transformar en cdigo el siguiente planteamiento: queremos generar un programa que muestre todoslosenteroscomprendidosentreunnmerodefinidoporelusuarioy100. SOLUCIN Grficamente:
20062012aprenderaprogramar.com

Option Explicit Dim Num As Integer Dim i As Integer Private Sub Form_Load() Show Form1.Caption = "Enteros" Num = Val(InputBox("Introduzca un nmero entero comprendido entre 1 y 99", "Nmero?")) Labeltabla.Alignment = 2 Labeltabla.FontBold = True Labeltabla = "ENTEROS ENTRE " & Num & " y 100" & vbCrLf & vbCrLf For i = Num To 100 Labeltabla = Labeltabla & i & " " Next i End Sub

BuclesForNextStep,DoWhileLoop,DoLoopWhile.

INSTRUCCINMIENTRAS...HACER(DOWHILE...LOOP) Lasintaxisquehemosdeseguireslasiguiente:

DoWhile[condicin] Instruccin1 Instruccin2 . . . Instruccinn Loop

Las instrucciones tipo Do While son anidables dentro de s mismas o dentro de otras estructuras. Es importante verificar que los bucles diseados con esta instruccin dispongan de una condicin de salidavlida. INSTRUCCINHACER...REPETIRMIENTRAS(DO...LOOPWHILE) Lasintaxisautilizares: Do Instruccin1 Instruccin2 . . . Instruccinn LoopWhile[condicin] Un Do ... Loop While es anidable dentro de s mismo o dentro de otras estructuras. Es importante verificarquelosbuclesdiseadosconestainstruccindispongandeunacondicindesalidavlida.
Visual Basic admite adems de la clusula While, usar el trmino Until, como equivalente a "hasta que se cumpla que". As Loop Until i >= 3 significara "Repetir hasta que i sea mayor o igual que 3". En un bucle en el que i parte de un valor cero y se incrementa unitariamente Do While i < 3 sera equivalente a Do Until i >= 3, y Loop Until i >= 3 sera equivalente a Loop While i < 3. Dado que podemos valernos de equivalencias, puede evitar confundirnos el usar preferentemente un mismo tipo de expresin, sabiendo que disponemos de otra equivalente.


20062012aprenderaprogramar.com

BuclesForNextStep,DoWhileLoop,DoLoopWhile.

Prximaentrega:CU00327A Accesoalcursocompletoenaprenderaprogramar.com >Cursos,oenladireccinsiguiente:


http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61

20062012aprenderaprogramar.com

Potrebbero piacerti anche