Usar el while <br />Página de inicioBibliotecaAprenderDescargasSoporte técnicoComunidadIniciar sesión |México - Español |P...
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Usar el while
Upcoming SlideShare
Loading in...5
×

Usar el while

7,601

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
7,601
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
43
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Usar el while"

  1. 1. Usar el while <br />Página de inicioBibliotecaAprenderDescargasSoporte técnicoComunidadIniciar sesión |México - Español |Preferencias<br />Principio del formulario<br />Final del formulario<br />MSDN Library<br />Herramientas y lenguajes de desarrollo<br />Visual Studio 2005<br />Documentación de Visual Studio<br />Visual Basic<br />Referencia (Visual Basic)<br />Referencia de Visual Basic<br />Instrucciones<br />Instrucciones Q-Z<br />While...End While (Instrucción)<br />Contenido de la comunidad<br />Agregue ejemplos de código y sugerencias para mejorar este tema.<br />Más...<br />Instrucción While...End While (Visual Basic)<br />Visual Studio 2005<br />Otras versiones <br />Visual Studio 2010<br />Visual Studio 2008<br />Ejecuta una serie de instrucciones siempre que una condición dada sea True.<br /> HYPERLINK "javascript:CodeSnippet_CopyCode('CodeSnippetContainerCode0');" o "Copiar al Portapapeles" Copiar<br />While condition<br /> [ statements ]<br /> [ Exit While ]<br /> [ statements ]<br />End While<br />Partes<br />condition <br />Requerido. Expresión Boolean. Si condition es Nothing, Visual Basic la trata como False.<br />statements <br />Opcional. Una o más instrucciones a continuación de While, que se ejecutan cada vez que condition es True.<br />Exit While <br />Opcional. Transfiere el control fuera del bloque While.<br />End While <br />Obligatorio. Termina la definición del bloque While.<br />Comentarios<br />Utilice una estructura While...End While si desea repetir un conjunto de instrucciones un número indefinido de veces, siempre que una condición sea True. Si desea más flexibilidad con respecto a la ubicación donde prueba la condición o al resultado para el que la prueba, quizá prefiera Instrucción Do...Loop (Visual Basic). Si desea repetir las instrucciones un número fijo de veces, Instrucción For...Next (Visual Basic) suele ser mejor opción.<br />Si condition es True, se ejecutan todas las statements hasta que se encuentra la instrucción End While Después, el control vuelve a la instrucción While y se comprueba de nuevo condition. Si condition aún es True, se repite el proceso. Si es False, el control pasa a la instrucción que sigue a la instrucción End While.<br />Reglas<br />Naturaleza de la condición. Generalmente, la condición es el resultado de comparar dos valores, pero también puede ser cualquier expresión que da como resultado un valor Boolean (Tipo de datos, Visual Basic) (True o False). Esto incluye los valores de otros tipos de datos, como los numéricos, que han sido convertidos a valores de tipo Boolean.<br />Probar la condición. La instrucción While comprueba siempre la condición antes de iniciar el bucle. La ejecución en bucle continúa mientras el resultado de la condición sea True.<br />Número de iteraciones. Si condition es False cuando entra en el bucle por primera vez, no se ejecuta ni una vez.<br />Anidar bucles. Los bucles While se pueden anidar, colocando un bucle dentro de otro. También puede anidar tipos diferentes de estructuras de control entre sí. Para obtener más información, vea Estructuras de control anidadas.<br />Transferir fuera del bucle. Instrucción Exit (Visual Basic) transfiere el control inmediatamente a la instrucción que sigue a la instrucción End While. Puede desear salir de un bucle si detecta una condición que hace que sea innecesario o que no se pueda continuar la iteración, como un valor incorrecto o una solicitud de finalización. Puede incluir el número que desee de instrucciones Exit While en cualquier parte del bucle While. Exit While se utiliza a menudo tras evaluar alguna condición, por ejemplo en una estructura If...Then...Else.<br />Bucles sin fin. Un uso de Exit While consiste en comprobar una condición que puede ocasionar un bucle sin fin; es decir, un bucle que se puede ejecutar un número extremadamente elevado o infinito de veces. Si detecta este tipo de condición, puede utilizar Exit While para salir del bucle. Para obtener más información, vea Instrucción Do...Loop (Visual Basic).<br />Ejemplo<br />Este ejemplo utiliza la estructura While...End While para incrementar una variable de contador. Las instrucciones del bucle se ejecutan en tanto la condición dé como resultado True.<br />VB<br />C#<br />C++<br />F#<br />JScript<br />Copiar<br />Dim counter As Integer = 0<br />While counter < 20<br /> counter += 1<br /> ' Insert code to use current value of counter.<br />End While<br />MsgBox("While loop ran " & CStr(counter) & " times")<br />Vea también<br />Referencia<br />Instrucción Do...Loop (Visual Basic)Instrucción For...Next (Visual Basic)Boolean (Tipo de datos, Visual Basic)Instrucción Exit (Visual Basic)<br />Conceptos<br />Estructuras de buclesEstructuras de control anidadas<br />Contenido de la comunidadAgregar<br />Preguntas más frecuentes<br />© 2011 Microsoft. Reservados todos los derechos.<br />Términos de uso | Marcas Registradas | Privacidad| Administre su perfil | MSDN Flash en Español | Contacto | Aviso legal| Comentarios <br />Principio del formulario<br />Recherche<br />Final del formulario<br />Registrase<br />Mapa de la web<br />Lengua<br />Francés<br />Alemán<br />Inglès<br />Español<br />Italiano<br />Portugués<br />RSS<br />Actualidades<br />FAQ<br />Programas<br />Programas - Actualizaciones<br />Conexión <br />Principio del formulario<br />IdentificaciónUsuarioContraseña ( ¿olvidado? ) <br />Final del formulario<br />High-Tech<br />Salud<br />Inicio<br />Foro<br />Trucos<br />Descargar<br />Actualidades<br />Artìculos<br />Inicio ›<br />Foro ›<br />Programación ›<br />Para que sirve if, for y while, visual basic<br />Imprimir<br />Ayudarles<br />Estadisticas<br /> HYPERLINK "http://es.kioskea.net/forum/programacion-3/new" Haga su preguntaDenunciar<br />Para que sirve if, for y while, visual basic [Resuelto/Cerrado]<br />a - Última respuesta el 17 jun 2010, 06:12<br />Hola,mi nombr es alejandro quiero que me ayuden necesito que me digan para que sirve if, for y while en visual basicsoy un estudiante y necesito ayuda ya!!!!!!!!!!<br />Seguir leyendo <br />Para que sirve if, for y while, visual basic »<br />Sugerencias<br />Para que sirve if, for y while, visual basic<br />Programas en visual basic 6.0 (Resuelto) » Foro<br />Algoritmo en visual basic p indetif nro par o » Foro<br />While » Foro<br />Ejercicio while » Foro<br />COMO HACER WHILE Y FOR EN VISUAL BASIC » Foro<br />Programar con visual basic 6 » Foro<br />Foro de discusión » Artículos<br />Cantidad de dias entre fechas en vb.net (Resuelto) » Foro<br />Codigos de visual basic para botones (Resuelto) » Foro<br />Más<br />18 respuestas<br />Respuesta<br />+76 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />AnaLes 5 dic 2008, 06:15 <br />If =Si, con eso podes hacer comparaciones esto es que por ejemplo If 4=4 then Writeln('son iguales');El for=ParaEste recorre ciertos datos por ejemplo deFor i:=1 to 10 doreadln(a);ejecuta 9 vecesel while es mientras...esto es mientras no se cumpla la condicion no entraWhile Num<> 0 do Mientras el numero sea distinto de 0 se siga ejecutando<br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" DenunciarAmuro-5 dic 2008, 17:34<br />ese If 4=4 ThenNo está bien usado dado que siempre lo pasariauna buena sintaxis seria:If NumeroA = NumeroB thenWriteln('son iguales'); Y tambien en el : For i:=1 to 10 doreadln(a);ejecuta 9 veces Lo va a ejecutar 10 veces<br />Respuesta<br />+33 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />memo_informatico17 ene 2009, 21:00 <br />hola mira lo que estas preguntando es algo sencillo bueno, "if" es una sentencia que te permite identifica o comparar ya sea un numero entero o una cadena de careacteres lo que sea, si se cumple la condicion es que en trara luego asa sentecia y si no se cumple no entra o.k solo entiende que para comparar algo ojo .......la sentencia "while" te permite para entrar en un ciclo o.k pero solo cuando se cumpla tambien osea mientras se cumpla sirta condicion entrara e ese ciclo de acuerdo ala sentencia que ayas puesto vale y si no pues mientras no entra o.k solo si cumple.la sentecia "for" te permite limitar un ciclo este es mas sencillo ya que tu tienes el control de cuantas veces quieres que entre al ciclo o.k es lo que diferencia de while si ose que desde 0 hasta 10 osea entrara solamente a compara la sentencias que tengas dentro de ese ciclo 10 veces ya y si se cumple una pues es de ahi si no simplemente no cumple nada pero ten cuidado al cerrar el ciclo ya que si no , de lo contrario se te ciclara je o.k espero y t haya podido ayudar algo y t sirva si no pues ahy tienes mi correo para cualquier duda vale y suerte nemo053@hotmail.com je bye<br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" DenunciarPrograma-20 may 2010, 04:56<br />No entiendo que es un "ciclo o.k"<br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar HYPERLINK "http://es.kioskea.net/communaute/profil-Amuro" Amuro-21 may 2010, 17:03<br />a ver... entendes la palabra "ciclo" como "algo que se repite una y otra vez" bueno esa es la explicacion<br />Respuesta<br />+22 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />Kevo19 mar 2010, 17:31 <br />te voy a dar un pantallaso jeneral de cada estructura despues la sintaxis corre por tu cuenta!! primero empieso por las de iteracion: For :Consiste en repetir N veces un bloque de acciones. Este número de veces que se deben ejecutar las acciones es fijo y conocido de antemano. para que tengas encuenta: *La variable de control debe ser de tipo ordinal *no debe modificarse dentro del lazo. *Los incrementos ó decrementos y testeos son implícitos *Al terminar el ciclo, la variable índice no tiene un valor definido (su uso se limita a la repetición). un ejemplo pequeño For i=1 to 10 num = num + i next While : Puede ocurrir que se desee ejecutar un bloque de instrucciones desconociendo el número exacto de veces que se ejecutan. Para estos casos existen en la mayoría de los lenguajes de programación estructurada las estructuras de control iterativas condicionales. Como su nombre lo indica las acciones se ejecutan dependiendo de la evaluación de la condición. Estas estructuras se clasifican en pre-condicionales y post-condicionales Las estructuras iterativas pre-condicionales primero evalúan la condición y si es verdadera se ejecuta el bloque de acciones. Dicho bloque se pueda ejecutar 0, 1 ó más veces. Importante: el valor inicial de la condición debe ser conocido o evaluable antes de la evaluación de la condición. otro ejemplo: {en la variable suma se guarda el resultado de la suma de los números ingresados} { inicializa la variable suma } suma := 0; writeln ( "Ingrese un número entero:" ); { la variable numero toma valor que luego utiliza como evaluar la condición por primera vez} readln ( numero ); while ( numero <> 0 ) do begin suma := suma + numero; writeln ( "Ingrese un número entero:" ); { la variable número toma otro valor que utilizará como nueva condición } read ( numero ); end; writeln ( "El resultado de la suma es:", suma ); { en suma se acumula la suma de los números leídos } ahora la de decision IF: En un algoritmo representativo de un problema real es prácticamente imposible que todo sea secuencial. Es necesario tomar decisiones en función de los datos del problema. un ejemplo de la estructura if If (condición) then Acciones_por_Condición_Verdadera; else Acciones_por_Condicion_Falsa; espero que te sirva la explicacion saludos.<br />Respuesta<br />+12 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br /> HYPERLINK "http://es.kioskea.net/communaute/profil-Amuro" Amuro4646Puestoslunes, 3 de noviembre de 2008Fecha de inscripciónsábado, 9 de abril de 2011Último discurso14 nov 2008, 18:26 <br />El es es una opcion entre unasintaxis, por ejemplo si un numero es mayor a otro hace una accion, si no es mayor hace otraLos For Y While son bucles que se repiten hasta que se cumpla una condicion(en el caso del For es cuando llegue al numero puesto For A = 1 to N cuando se llega al numero N para.)<br />Respuesta<br />+10 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />sander el grande13 ene 2010, 16:33 <br />HOLA LOQUE ESTAS PREGUNTAND ES MUY FACIL LA SENTENCIA "IF" SE UTILIZA PARA UNA COMPARACION ES COMO UNA PREGUNTA PERO SIEMPRE TIENES QUE TOMAR EN CUENTA QUE CADA IF QUE HABRAS DE SIERRA CON UN "END IF" ACA TE DOY UN PEQUEÑO EJM * REALIZA UN PROGRAMA QUE TE PERMITA INGRESAR 3 NOTAS DE UN ALUMNO calcule su promedio si el promedio es menor que 11 entonces reportar desaprobado y si es mayor que 12 reportar aprobado de lo contrario un msm "notas incorrectas 1paso declaracion privatesub_cmdcalcular_clic()dim n1,n2,n3,pr as integer n1 =val (txtn1.text)n2 =val (txtn2.text)n3 =val (txtn3.text)pr=(n1+n2+n3) / 3 lblpro.caption=str (pr) if pr mayor 10 and pr menor 21 then lblreporte="alumno aprobado"elseif pr mayor 0 and pr menor 11 thenlblreporte="alumno desaprobado"elseif pr mayor 20 and pr menor 0 thenlblreporte ="notas incorretas "end if end sub<br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciarenax420-9 abr 2010, 02:19<br />x favor me podria mandar un link para descargar visual basic 6.0 .. x favor lo necesito x la universidad...lo agradeceria mucho.. mi correo es kevin.vallejos92@yahoo.es<br />Respuesta<br />+10 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />faraon17 jun 2010, 06:12 <br />INFORMACIÓN GENERAL IDENTIFICACIÓN DE LA GUÍAFECHA DE APLICACIÓN: Mayo 19 de 2010PROGRAMA DE FORMACIÓN: Técnico en SistemasID: CENTRO AGROEMPRESARIAL Y TURISTICO DE LOS ANDESRESULTADOS DE APRENDIZAJE:* Identificar los conceptos de programación orientada a eventos y aplicarlos en un lenguaje específicoCRITERIOS DE EVALUACIÓN:1. Identificar la estructura del condicional IF(SI) dentro de la programación de Visual BasicNOMBRE DEL INSTRUCTOR- TUTOR: DARWIN ALEXIS CELIS BOADA DESARROLLO DE LA GUIA INTRODUCCIÓN:Visual-Basic es una herramienta de diseño de aplicaciones para Windows, en la que estas se desarrollan en una gran parte a partir del diseño de una interface gráfica. En una aplicación Visual - Basic, el programa está formado por una parte de código puro, y otras partes asociadas a los objetos que forman la interface gráfica.Es por tanto un término medio entre la programación tradicional, formada por una sucesión lineal de código estructurado, y la programación orientada a objetos. Combina ambas tendencias. Ya que no podemos decir que VB pertenezca por completo a uno de esos dos tipos de programación, debemos inventar una palabra que la defina : PROGRAMACION VISUAL.La estructura de control IF permite decir entre dos opciones resultantes de la evaluación de una sentencia. Si la evaluación es positiva hace una cosa, también podemos especificar acciones para realizar en caso de que la evaluación sea negativa. Veamos cómo funciona en VBscript. IF (expresion) thenSentencias....END IFVemos que en primer lugar tenemos la sentencia IF, luego una expresión, que puede o no ir entre paréntesis, y más tarde la parabra THEN. Vemos que luego hay un salto de línea antes de colocar las sentencias asociadas a la evaluación positiva de la sentencia. En VBScript las líneas si que importan. Después de poner las sentencias del asociadas a la evaluación positiva colocamos un END IF, para acabar la estructura del IF. Enunciado ELSE Opcionalmente se puede colocar una serie de sentencias asociadas a la evaluación negativa de la expresión. Estas sentencias se deben colocar después de la orden ELSE y antes del END IF. IF (expresion) thenSentencias....ELSESentencias....END IFEnunciado ELSEIF En Visual Basic Script existe la posibilidad de utilizar un enunciado especial en el lugar donde utilizaríamos un ELSE. Sirve para encadenar sentencias IF de modo que en un resultado negativo de un IF se pueda evaluar otra expresión, que tendría a su vez otros enunciados THEN y probablemente ELSE u otro ELSEIF. Se vería en un ejemplo com más facilidad:IF (expresion1) thenSentencias1....ELSEIF (expresion2) thenSentencias2....ELSEIF (expresion3) thenSentencias3....ELSESentencias4....END IFSe evalúa la primera expresión, en caso positivo se ejecutan las sentencias1, en caso negativo se evalua la expresion 2. Si la expresión 2 es positiva se ejecutan las sentencias 2 en caso negativo evaluamos la expresión 3 con el siguiente ELSEIF. Todo acaba en un ELSE en este ejemplo, pero el ELSE final no es obligatorio.Formulación de Actividades:1. Realizar una aplicación en la cual se comparen dos números y se diga cual es el mayor y cuál es el menor.2. Realizar una aplicación en la cual se reciban los datos de una persona, se procesen y se determine si es mayor de edad o menor de edad.BIBLIOGRAFIA DE ANEXOS:* Página oficial de Microsoft* Foros y paginas de VBEVALUACIÓN:EVIDENCIAS DE APRENDIZAJE TECNICAS E INSTRUMENTOS DE EVALUACIONRespuesta a preguntas sobre conceptos generales de VB como historia, características, ventajas y desventajas, arquitectura, componentes, entre otros -Valoración de productos.Por plataformaLista de chequeoINFORMACIÓN GENERAL IDENTIFICACIÓN DE LA GUÍAFECHA DE APLICACIÓN: Mayo 19 de 2010PROGRAMA DE FORMACIÓN: Técnico en SistemasID: CENTRO AGROEMPRESARIAL Y TURISTICO DE LOS ANDESRESULTADOS DE APRENDIZAJE:* Identificar los conceptos de programación orientada a eventos y aplicarlos en un lenguaje específicoCRITERIOS DE EVALUACIÓN:1. Identificar la estructura del condicional IF(SI) dentro de la programación de Visual BasicNOMBRE DEL INSTRUCTOR- TUTOR: DARWIN ALEXIS CELIS BOADA DESARROLLO DE LA GUIA INTRODUCCIÓN:Visual-Basic es una herramienta de diseño de aplicaciones para Windows, en la que estas se desarrollan en una gran parte a partir del diseño de una interface gráfica. En una aplicación Visual - Basic, el programa está formado por una parte de código puro, y otras partes asociadas a los objetos que forman la interface gráfica.Es por tanto un término medio entre la programación tradicional, formada por una sucesión lineal de código estructurado, y la programación orientada a objetos. Combina ambas tendencias. Ya que no podemos decir que VB pertenezca por completo a uno de esos dos tipos de programación, debemos inventar una palabra que la defina : PROGRAMACION VISUAL.La estructura de control IF permite decir entre dos opciones resultantes de la evaluación de una sentencia. Si la evaluación es positiva hace una cosa, también podemos especificar acciones para realizar en caso de que la evaluación sea negativa. Veamos cómo funciona en VBscript. IF (expresion) thenSentencias....END IFVemos que en primer lugar tenemos la sentencia IF, luego una expresión, que puede o no ir entre paréntesis, y más tarde la parabra THEN. Vemos que luego hay un salto de línea antes de colocar las sentencias asociadas a la evaluación positiva de la sentencia. En VBScript las líneas si que importan. Después de poner las sentencias del asociadas a la evaluación positiva colocamos un END IF, para acabar la estructura del IF. Enunciado ELSE Opcionalmente se puede colocar una serie de sentencias asociadas a la evaluación negativa de la expresión. Estas sentencias se deben colocar después de la orden ELSE y antes del END IF. IF (expresion) thenSentencias....ELSESentencias....END IFEnunciado ELSEIF En Visual Basic Script existe la posibilidad de utilizar un enunciado especial en el lugar donde utilizaríamos un ELSE. Sirve para encadenar sentencias IF de modo que en un resultado negativo de un IF se pueda evaluar otra expresión, que tendría a su vez otros enunciados THEN y probablemente ELSE u otro ELSEIF. Se vería en un ejemplo com más facilidad:IF (expresion1) thenSentencias1....ELSEIF (expresion2) thenSentencias2....ELSEIF (expresion3) thenSentencias3....ELSESentencias4....END IFSe evalúa la primera expresión, en caso positivo se ejecutan las sentencias1, en caso negativo se evalua la expresion 2. Si la expresión 2 es positiva se ejecutan las sentencias 2 en caso negativo evaluamos la expresión 3 con el siguiente ELSEIF. Todo acaba en un ELSE en este ejemplo, pero el ELSE final no es obligatorio.Formulación de Actividades:1. Realizar una aplicación en la cual se comparen dos números y se diga cual es el mayor y cuál es el menor.2. Realizar una aplicación en la cual se reciban los datos de una persona, se procesen y se determine si es mayor de edad o menor de edad.BIBLIOGRAFIA DE ANEXOS:* Página oficial de Microsoft* Foros y paginas de VBEVALUACIÓN:EVIDENCIAS DE APRENDIZAJE TECNICAS E INSTRUMENTOS DE EVALUACIONRespuesta a preguntas sobre conceptos generales de VB como historia, características, ventajas y desventajas, arquitectura, componentes, entre otros -Valoración de productos.Por plataformaLista de chequeov<br />Respuesta<br />+2 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />rober1993 7 ene 2009, 03:48 <br />mira aqui un breve manual HYPERLINK "http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico3.htm" l "estructuras" t "_blank" http://www.recursosvisualbasic.com.ar/...espero que te ayude<br />Respuesta<br />+2 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />AREN20 may 2010, 04:51 <br />HOLA SOY ERENDIRA Y EL IF SIRVE PARA TOMAR DECISIONES EL FOR PARA HACER UN HYPERLINK "http://es.kioskea.net/contents/pc/processeur.php3" CICLO ASTA QUE SE CUMPLA UNA CONDICION Y EL WHILE ES PARA LO MISMO ES PARA UN CICLO ESO ME DIJO MI PROFE DE INFORMATICA ESPERO Y T ALLA SERVIDO VA BUEN O BYE<br />Respuesta<br />+1 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />Andrea Guadalupe15 jun 2010, 02:47 <br />el comillado son las comas para hacer enfasis a la lectura<br />Respuesta<br />+0 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />mar21 may 2010, 05:28 <br />son HYPERLINK "http://es.kioskea.net/contents/pc/processeur.php3" ciclos que te sirven como si, no o sino<br />Respuesta<br />-2 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br /> HYPERLINK "http://es.kioskea.net/communaute/profil-Master4" Master42631Puestosviernes, 4 de abril de 2008Fecha de inscripción18 sep 2008, 20:32 <br />Holaaca te mando una pagina con una explicacion HYPERLINK "http://www.monografias.com/trabajos17/manual-visual/manual-visual.shtml" t "_blank" http://www.monografias.com/trabajos17/manual-visual/manual-visual.shtml<br />Respuesta<br />-4 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />Bebiis10 feb 2010, 02:28 <br />Olaaz Qeriid0o ps veraasQee el if es una estructura de condición la cual cuestionara antes de ejecitarseel for ii el while son estructuras de repeticion las cuales permitiiran Qee una iinstruccion se repiita cuantas veces sean reQueridaas..°!! =D<br />Respuesta<br />-11 <br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar<br />miri conde26 mar 2010, 16:52 <br />hola ps es muy facil lee el libro de redes va cuidat tk<br /> HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" Denunciar HYPERLINK "http://es.kioskea.net/communaute/profil-Amuro" Amuro-29 mar 2010, 16:30<br />no hace falta saber de redes para saber lo del If... en cuanquier manual de principiante de programación está eso.<br /> HYPERLINK "http://es.kioskea.net/forum/programacion-3/new" Haga su pregunta<br />Este documento intitulado « HYPERLINK "http://es.kioskea.net/forum/affich-23543-para-que-sirve-if-for-y-while-visual-basic" para que sirve if, for y while, visual basic » de HYPERLINK "http://es.kioskea.net" Kioskea.net ( HYPERLINK "http://es.kioskea.net/" es.kioskea.net) esta puesto a diposición bajo la licencia HYPERLINK "http://es.kioskea.net/ccmguide/ccmlicence.php3" Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible.<br />Entrevista exclusiva para Kioskea<br /> HYPERLINK "http://es.kioskea.net/news/13390-kevin-turner-coo-microsoft-deseamos-estar-presentes-en-el-100-de-las-empresas-de-fortune-global-500-con-nuestros-servicios" Kevin Turner (COO, Microsoft): "Deseamos estar presentes en el 100% de las empresas de Fortune Global 500 con nuestros servicios" <br />CCM-Benchmark Network <br /> HYPERLINK "http://www.commentcamarche.net" www.commentcamarche.net<br /> HYPERLINK "http://de.kioskea.net" de.kioskea.net<br /> HYPERLINK "http://en.kioskea.net" en.kioskea.net<br /> HYPERLINK "http://es.kioskea.net" es.kioskea.net<br /> HYPERLINK "http://it.kioskea.net" it.kioskea.net<br /> HYPERLINK "http://pt.kioskea.net" pt.kioskea.net<br /> HYPERLINK "http://salud.kioskea.net" salud.kioskea.net<br /> HYPERLINK "http://expeert.com/fr/" Expeert<br /> HYPERLINK "http://www.supinfo.com" SUPINFO, Escuela de Ingeniería<br />Accesos directos <br /> HYPERLINK "http://es.kioskea.net/contents/ccmguide/cgu-conditions-generales.php3" Términos de uso<br /> HYPERLINK "http://es.kioskea.net/contents/ccmguide/ccmintro.php3" Quiénes somos<br /> HYPERLINK "http://es.kioskea.net/contact/" Contacto<br /> HYPERLINK "http://es.kioskea.net/contents/ccmguide/ccmcharte.php3" Aviso legal<br />Índice <br /> HYPERLINK "http://es.kioskea.net/index/a" A HYPERLINK "http://es.kioskea.net/index/b" B HYPERLINK "http://es.kioskea.net/index/c" C HYPERLINK "http://es.kioskea.net/index/d" D HYPERLINK "http://es.kioskea.net/index/e" E HYPERLINK "http://es.kioskea.net/index/f" F HYPERLINK "http://es.kioskea.net/index/g" G HYPERLINK "http://es.kioskea.net/index/h" H HYPERLINK "http://es.kioskea.net/index/i" I HYPERLINK "http://es.kioskea.net/index/j" J HYPERLINK "http://es.kioskea.net/index/k" K HYPERLINK "http://es.kioskea.net/index/l" L HYPERLINK "http://es.kioskea.net/index/m" M HYPERLINK "http://es.kioskea.net/index/n" N HYPERLINK "http://es.kioskea.net/index/o" O HYPERLINK "http://es.kioskea.net/index/p" P HYPERLINK "http://es.kioskea.net/index/q" Q HYPERLINK "http://es.kioskea.net/index/r" R HYPERLINK "http://es.kioskea.net/index/s" S HYPERLINK "http://es.kioskea.net/index/t" T HYPERLINK "http://es.kioskea.net/index/u" U HYPERLINK "http://es.kioskea.net/index/v" V HYPERLINK "http://es.kioskea.net/index/w" W HYPERLINK "http://es.kioskea.net/index/x" X HYPERLINK "http://es.kioskea.net/index/y" Y HYPERLINK "http://es.kioskea.net/index/z" Z HYPERLINK "http://es.kioskea.net/index/0" 0-9<br />Principio del formulario<br />Recevez notre newsletter<br />Final del formulario<br /><img width="1" height="1" src="http://logc15.xiti.com/hit.xiti?s=254140&p=forum%3A%3Aaffich-23543-para-que-sirve-if-for-y-while-visual-basic&s2=5" alt="" /> <br />el Guille, la Web del Visual Basic, C#, .NET y más... Lo+ - WinFX - .NET - ADO.NET - ASP.NET - Cómo... - Colabora - VB6 - API - HTML - Vista - Links - Foros <br />Curso Básico de Programaciónen Visual Basic<br />Sexta Entrega: 11/Ago/97.por Guillermo "guille" Som<br />Si quieres linkar con las otras entregas, desde el índice lo puedes hacer<br />Solución de los ejercicios de la Quinta Entrega HYPERLINK "http://www.elguille.info/vb/cursos_vb/BASICO/basico06_sol.htm" Pulsa este link para ver la solución de los ejercicios de la quinta entrega (aunque el nombre la página sea: basico06_sol)<br />Como hemos visto en el apéndice de la entrega anterior, la instrucción IF... THEN... nos permite tomar decisiones según el valor de una variable o el resultado de una expresión. En esta entrega veremos como sacarle rendimiento a esta instrucción.Pero antes de entrar en detalles, veamos cómo podemos decirle al Basic que haga las cosas. En realidad vamos a ver la forma en que se le puede decir que las haga...<br />Forma de especificar las instrucciones en Visual BasicLas instrucciones en Basic no tienen porqué estar cada una en una línea. Se pueden escribir varias instrucciones en la misma línea, pero separando cada una de ellas con el signo : (dos puntos).Cuando VB encuentra los dos puntos, deja de 'interpretar' la instrucción y pasa a la acción, una vez traducido a su lenguaje interno, toma lo que hay después del signo : y sigue su camino en busca de más instrucciones o el final de la línea.<br />Veámoslo de forma práctica:Nombre = "Pepe" : Print NombreEsta línea tiene dos instrucciones: una asignación y una instrucción Print.<br />Podemos poner cuantas instrucciones queramos, separadas con los dos puntos.<br />Pero, (siempre hay un pero), si una de las instrucciones es el IF/THEN la cosa puede cambiar...<br />Ya vimos que IF comprueba la expresión que viene a continuación, si es cierta, ENTONCES procesa lo que haya después de THEN. En caso de ser en la misma línea, interpretará todas las instrucciones que estén a continuación; en caso de ser un bloque IF... THEN... END IF, ejecutará todo lo que esté dentro de ese bloque. Ahora bien, si la expresión es falsa pasa a la siguiente línea, tanto si es o no un bloque. En el caso del bloque la siguiente línea a interpretar será la que esté después de END IF.<br />En los tiempos del BASIC interpretado de MS-DOS, era habitual encontrar las líneas con varias instrucciones separadas por dos puntos.En mi caso, cuando empecé a usar el QuickBasic 2.0 y al poder usar bloques IF... THEN... END IF, fui dejando a un lado el "mogollón" de instrucciones en la misma línea...Ahora, salvo en contadas excepciones, escribo cada instrucción en una línea. Y te recomiendo que hagas lo mismo, tu código ganará en claridad y si alguna vez vuelves a verlo, te será más fácil de entender.<br />Después de este pequeño respiro, veamos cómo estaría formada una línea de VB para usar con un IF... THEN...<br />[instrucciones:] IF <expresión> THEN <instrucciones si es cierto [:más instrucciones...]><br />A continuación de THEN podemos incluir cuantas instrucciones queramos, separadas por dos puntos.Estas sólo se ejecutarán cuando la expresión sea cierta. Si el resultado de la expresión es falso, se obvia 'todo' lo que hay después de THEN y se pasa a la siguiente línea.Espero que lo hayas asimilado y que no te indigestes con lo siguiente...<br />Pero, (...), existe otra instrucción que PUEDE acompañar al IF... THEN... y es para los casos en los cuales el resultado de la expresión sea FALSO.Si, ya sé que dije que cuando es falso se pasa a la siguiente línea, pero eso es cuando no se usa la cláusula ELSE.Con ésta, la definición de la instrucción "tomadora de decisiones" quedaría así:<br />IF <expresión> THEN <si se cumple> ELSE <si no se cumple><br />Tanto en <si se cumple> como en <si no se cumple> pondremos tantas instrucciones como queramos, (separadas por dos puntos).<br />Pero no te recomiendo que lo hagas, es preferible, al menos para darle "claridad" a nuestro código, usar el bloque:<br />IF <expresión> THEN<br /> <si se cumple><br />ELSE<br /> <si no se cumple><br />END IF<br />Sé que esto puede ocupar más líneas de código, pero nuestro "coco" lo agradecerá, ya que es más fácil de comprender, sino veamos un ejemplo:<br />IF numero > limite THEN<br /> Print "tu número es grande"<br />ELSE<br /> Print "OK, McKey!"<br />END IF<br />Ahora veámoslo en una sóla línea:<br />IF numero > limite THEN Print "tu número es grande" ELSE Print "OK, McKey!"<br />En este ejemplo, aún queda claro, pero lo podríamos complicar con más instrucciones para ambos casos, es decir, para cuando la expresión es cierta y también cuando es falsa.<br />En los tiempos del BASIC que venían incorporados con los ordenadores, cada línea del programa había que numerarla, ya que todo lo que se escribía sin número de línea, se ejecutaba inmediatamente; al igual que ocurre con lo que se escribe en la ventana Inmediate del Visual Basic.Los números de líneas se usaban, además de porque era obligatorio, para cambiar el orden de ejecución, sobre todo después de una comparación. De esta forma, aún sin tener bloques IF/THEN/ELSE/END IF, se podían simular.¿Cómo se lograba?Usando una instrucción que muchos creen que es "indecente, antisocial, etc."La estrella del Basic: (redoble de tambores) "GOTO"A partir de hoy, más de un purista de la programación no me dirigirá la palabra... pero no me importa...<br />Se ha "denostado" (injuriado) con exageración el uso de esta instrucción.Realmente es una instrucción de "bifurcación", es decir, sirve para "IR A" otro sitio de nuestro programa.Su uso ha sido el más criticado de los NO PARTIDARIOS del Basic y siempre han basado sus críticas en el exagerado uso del GOTO en todos los programas Basic. Pero aclaremos que C también tiene esta instrucción y que cualquier programa en código máquina (ensamblador) está "plagado" de JMP que para el caso es lo mismo que el sufrido GOTO, realmente una instrucción GOTO número_linea se convierte en JMP número_linea.<br />No voy a recomendar el uso del GOTO, para nada, ya que hoy día es innecesario su uso. Antes no teníamos más remedio, porque el BASIC no disponía de instrucciones para poder estructurar el código. Pero sería una tontería querer hacer creer que no existe esta instrucción. Sabiendo que está y cómo podemos evitarla, es preferible a decir que no existe y si por casualidad la descubres... a que la uses.Por tanto, insisto en mi recomendación, (de esta forma los PURISTAS volverán a dirigirme la palabra), NO USES EL GOTO, ni aún cuando creas que no tienes más remedio... aunque, aquí entre nosotros, algunas veces es más cómodo usarlo... pero que no se entere nadie...<br />Este es un programa de los de antes, sirve para mostrar en pantalla los números del 1 al 10 y sin usar el FOR/NEXT<br />10 A = 1<br />20 Print A<br />30 A = A + 1<br />40 IF A <= 10 THEN GOTO 20<br />'Con el Commodore este programa se solía escribir así:<br />10 A=1<br />20 PRINTA:A=A+1:IFA<=10GOTO20<br />'Sin ESPACIOS NI NADA... TODO APELMAZADO... ¿que más daba usar el GOTO?<br />Imagine there's no heaven... (es que está sonando J. Lennon... un momento...)<br />En este ejemplo, es obvio que podríamos sustituirlo con:<br />10 For A = 1 To 10<br />20 Print A<br />30 Next<br />El NEXT hace lo mismo que la asignación y la comparación.Pero hay otras maneras, para ello existe una serie de instrucciones que funcionan de manera similar, veamos otros ejemplos con más instrucciones para hacer bucles, seguiré usando los números de línea por aquello de la "nostalgia", pero salvo en el primer ejemplo, en los demás no es necesario.<br />10 A = 1<br />20 While A <= 10<br />30 Print A<br />40 A = A + 1<br />50 Wend<br />El WHILE/WEND ya casi ni se usa, porque tienen un sustituto más versátil, ahora lo veremos, pero el uso sería:<br />WHILE <expresión><br /> <instrucciones si se cumple><br />WEND<br />Es decir, MIENTRAS la expresión sea cierta, repite todo lo que haya hasta el WEND.Por supuesto podemos ponerlo todo en una sola línea:10 A = 1 : While A <= 10 : Print A : A = A + 1 : Wend<br />Pero esto tampoco es recomendable, queda algo "difuso"...El WEND funciona como IF A <=10 THEN GOTO xxx, con la ventaja que evitamos el GOTO y lo que hace es comprobar si la expresión que hay tras el WHILE es cierta o no, en caso de que sea verdadero el resultado, (ya sabes, distinto de CERO), se ejecutará todo lo que hay entre WHILE y WEND. Estas instrucciones ya existían en el GWBASIC (el basic de los PCs)<br />Hay que tener cuidado con esto de que la expresiones evalúan el cero como FALSO y cualquier otro valor como VERDADERO, por ejemplo:<br />A = 1o<br />While AWhile 1<br /> Print A Print A<br /> A = A + 1 A = A + 1<br />WendWend<br />En ambos casos el bucle sería "infinito", realmente se detendría en un momento dado, ya que llegaría a "desbordarse" el valor máximo y en ese momento el programa acabaría por producirse un error... pero prueba esto y verás:<br />While 1<br /> Print "Hola Mundo"<br />Wend<br />Esto nunca finalizará, salvo que pulses CRTL+BEAK (o INTERrumpir), para detener el programa.<br />Más instrucciones para hacer bucles<br />Con el QuickBasic 3.0, (yo no llegué a tenerlo, pero creo que fue ahí dónde se introdujo), entró en funcionamiento una nueva forma de hacer bucles:DO... LOOPEl último ejemplo podríamos escribirlo así:<br />Do<br /> Print "Hola Mundo"<br />Loop<br />Pero la "gracia" de este tipo de bucle es que podemos usar dos nuevas cláusulas para evaluar cuanto durará el bucle.La primera es WHILE y funciona igual que en WHILE/WEND<br />A = 1<br />Do While A <= 10<br /> Print A<br /> A = A + 1<br />Loop<br />La ventaja es que WHILE se puede poner tanto después de DO como a continuación de LOOP.Si lo usamos como DO WHILE <expresión>... la forma de actuar es igual que WHILE/WEND, es decir, se evalúa la expresión y sólo en caso de que sea cierta, se ejecuta lo que está dentro del bucle, es decir entre DO y LOOP.Pero si evaluamos la expresión en LOOP, se ejecutará todo lo que hay tras el DO, como mínimo una vez y se seguirá repitiendo si se cumple la condición. De esta forma, como he dicho, se ejecutará el contenido del bucle, como mínimo una vez.Veamos un ejemplo:<br />A = 1<br />Do<br /> Print A<br /> A = A + 1<br />Loop While A <= 10<br />El problema es que si A, en lugar de valer 1, tiene un valor superior a 10, también se ejecutará, al menos, una vez.A = 11 : Do : Print A: A = A + 1: Loop While A <= 10Que mal queda en una sola línea, ¿verdad?<br />Pero con DO/LOOP también puede usarse UNTIL, en este caso, el bucle se repetirá HASTA que se cumpla la expresión<br />A = 1<br />Do Until A > 10<br /> Print A<br /> A = A + 1<br />Loop<br />Fíjate que la expresión ha cambiado de <= (menor o igual) a > (mayor), ya que ahora se evalúa de esta forma:Hasta que A sea mayor que diez, REPITE todo hasta LOOP.Por supuesto también podemos usarlo después del LOOP:<br />A = 1<br />Do<br /> Print A<br /> A = A + 1<br />Loop Until A > 10<br />Aquí hago la misma aclaración que antes, si el valor inicial de A es más de 10 se ejecutará como mínimo una vez.Realmente para contar de forma secuencial y prácticamente para casi todo tipo de bucle, no es necesario hacer los bucles con DO/LOOP, ya que FOR/MEXT lo hace bastante bien.<br />Sigamos con estos bucles, pero en lugar de contar de menor a mayor, vamos a contar "pa trás", es decir de mayor a menor... quién sabe, lo mismo necesitas hacer un programa que cuente al revés...<br />A = 10<br />Do While A >= 1<br /> Print A<br /> A = A - 1<br />Loop<br />Cuando se muestre el 1, A=A-1 se convertirá en A = 0 y la comparación A >= 1 no se cumplirá, por tanto dejará de repetirse el bucle, pero esto también se puede hacer con FOR/NEXT:<br />For A = 10 To 1<br /> Print A<br />Next<br />El único inconveniente es que NO SE REPITE NI UNA VEZ... ¿Por qué?Porque si no se le indica lo contrario, FOR/NEXT siempre cuenta de forma ascendente y cuando ve que A debe ir de 10 hasta 1 y que eso no es ascendente... pasa de ejecutar el bucle. Esto es una cosa a tener en cuenta, FOR siempre evalúa los valores del bucle que tiene que hacer y si no está entre los valores que debe, no se ejecuta ni una sola vez. En este caso debe empezar por DIEZ y llegar hasta UNO, así que se da cuenta de que ya ha terminado... incluso sin haber empezado... ¡que listo es el FOR!<br />Para que el FOR cuente hacia atrás, necesitamos un nuevo peldaño (esto en inglés quedaría "clavado"), en la escala evolutiva del FOR/NEXT (ahí queda eso!!!)Ya sin coñas, se necesita la palabra STEP para indicarle que no queremos ir de uno en uno de forma ascendente, en nuestro ejemplo lo usaríamos así:<br />For A = 10 To 1 Step -1<br /> Print A<br />Next<br />De esta forma contará desde 10 hasta 1, restando uno en cada repetición.Pero, ¿que hacer si queremos usar otros valores?Simplemente ponerlo después de STEP, por ejemplo:For A = 10 To 1 Step -1For A = 1 To 10 Step 3, etc, etc.<br />Insisto, todo esto está muy bien, pero en la práctica usaremos otras cosas además de contar de forma lineal, con incrementos o sin ellos... habrá veces que queramos salir de un bucle.Ya lo hemos visto, por ejemplo Exit Sub salía del procedimiento, ¿recuerdas el Exit For?Para salir de los bucles podremos Exit y a continuación For, Do, etc. Pero NO podremos salir de un bucle WHILE/WEND.Ya veremos ejemplos para estos casos y otros que surgirán más adelante.<br />Bien, creo que ya hemos dado demasiadas vueltas con tanto bucle, para terminar: los ejercicios esos que tanto os gustan.<br />1.) Haz un programa que al pulsar en un botón (CommandButton) haga un bucle entre dos valores que habrás introducido por medio de dos cajas de textos (una para el inicio y otra para el final)<br />2.) Otro que tenga una tercera caja de textos y que el valor introducido en ella sea el incremento.<br />3.) Como tercer ejercicio, una vez terminado el bucle, que muestre en un Label las veces que se ha repetido.Por ejemplo, si hacemos un bucle del uno al diez de uno en uno, se repetirá diez veces; pero si lo hacemos de dos en dos, se repetirá cinco veces...Como pista, decirte que no tendrás que hacer ninguna comparación para obtener el resultado, la solución es tan SIMPLE que seguramente la descartarás "porque no puede ser tan fácil"<br />Por supuesto, me gustaría que los bucles los hicieras tanto con FOR/NEXT y DO/LOOP. Ya puestos, podrías hacerlo con el WHILE/WEND e incluso con el GOTO...<br />¡Feliz programación!<br />Y seguimos con la costumbre esta de pedirte HYPERLINK "http://www.elguille.info/mensajealguille.asp?Subject=Sobre_el_curso6" tus comentarios sobre el curso.Sobre todo necesito saber si realmente está claro y entendible... ya que si no no valdrá para mucho el montón de horas que le dedico a cada una de las entregas... si, aunque no te lo creas, le dedico más de 5 horas a cada entrega...<br />Si no pasa nada raro, seguramente en este mismo mes habrá una nueva entrega.Nos vemos.Guillermo<br />el Guille, la Web del Visual Basic, C#, .NET y más... Lo+ - WinFX - .NET - ADO.NET - ASP.NET - Cómo... - Colabora - VB6 - API - HTML - Vista - Links - Foros <br />Curso Básico de Programaciónen Visual Basic<br />Sexta Entrega: 11/Ago/97.por Guillermo "guille" Som<br />Si quieres linkar con las otras entregas, desde el índice lo puedes hacer<br />Solución de los ejercicios de la Quinta Entrega HYPERLINK "http://www.elguille.info/vb/cursos_vb/BASICO/basico06_sol.htm" Pulsa este link para ver la solución de los ejercicios de la quinta entrega (aunque el nombre la página sea: basico06_sol)<br />Como hemos visto en el apéndice de la entrega anterior, la instrucción IF... THEN... nos permite tomar decisiones según el valor de una variable o el resultado de una expresión. En esta entrega veremos como sacarle rendimiento a esta instrucción.Pero antes de entrar en detalles, veamos cómo podemos decirle al Basic que haga las cosas. En realidad vamos a ver la forma en que se le puede decir que las haga...<br />Forma de especificar las instrucciones en Visual BasicLas instrucciones en Basic no tienen porqué estar cada una en una línea. Se pueden escribir varias instrucciones en la misma línea, pero separando cada una de ellas con el signo : (dos puntos).Cuando VB encuentra los dos puntos, deja de 'interpretar' la instrucción y pasa a la acción, una vez traducido a su lenguaje interno, toma lo que hay después del signo : y sigue su camino en busca de más instrucciones o el final de la línea.<br />Veámoslo de forma práctica:Nombre = "Pepe" : Print NombreEsta línea tiene dos instrucciones: una asignación y una instrucción Print.<br />Podemos poner cuantas instrucciones queramos, separadas con los dos puntos.<br />Pero, (siempre hay un pero), si una de las instrucciones es el IF/THEN la cosa puede cambiar...<br />Ya vimos que IF comprueba la expresión que viene a continuación, si es cierta, ENTONCES procesa lo que haya después de THEN. En caso de ser en la misma línea, interpretará todas las instrucciones que estén a continuación; en caso de ser un bloque IF... THEN... END IF, ejecutará todo lo que esté dentro de ese bloque. Ahora bien, si la expresión es falsa pasa a la siguiente línea, tanto si es o no un bloque. En el caso del bloque la siguiente línea a interpretar será la que esté después de END IF.<br />En los tiempos del BASIC interpretado de MS-DOS, era habitual encontrar las líneas con varias instrucciones separadas por dos puntos.En mi caso, cuando empecé a usar el QuickBasic 2.0 y al poder usar bloques IF... THEN... END IF, fui dejando a un lado el "mogollón" de instrucciones en la misma línea...Ahora, salvo en contadas excepciones, escribo cada instrucción en una línea. Y te recomiendo que hagas lo mismo, tu código ganará en claridad y si alguna vez vuelves a verlo, te será más fácil de entender.<br />Después de este pequeño respiro, veamos cómo estaría formada una línea de VB para usar con un IF... THEN...<br />[instrucciones:] IF <expresión> THEN <instrucciones si es cierto [:más instrucciones...]><br />A continuación de THEN podemos incluir cuantas instrucciones queramos, separadas por dos puntos.Estas sólo se ejecutarán cuando la expresión sea cierta. Si el resultado de la expresión es falso, se obvia 'todo' lo que hay después de THEN y se pasa a la siguiente línea.Espero que lo hayas asimilado y que no te indigestes con lo siguiente...<br />Pero, (...), existe otra instrucción que PUEDE acompañar al IF... THEN... y es para los casos en los cuales el resultado de la expresión sea FALSO.Si, ya sé que dije que cuando es falso se pasa a la siguiente línea, pero eso es cuando no se usa la cláusula ELSE.Con ésta, la definición de la instrucción "tomadora de decisiones" quedaría así:<br />IF <expresión> THEN <si se cumple> ELSE <si no se cumple><br />Tanto en <si se cumple> como en <si no se cumple> pondremos tantas instrucciones como queramos, (separadas por dos puntos).<br />Pero no te recomiendo que lo hagas, es preferible, al menos para darle "claridad" a nuestro código, usar el bloque:<br />IF <expresión> THEN<br /> <si se cumple><br />ELSE<br /> <si no se cumple><br />END IF<br />Sé que esto puede ocupar más líneas de código, pero nuestro "coco" lo agradecerá, ya que es más fácil de comprender, sino veamos un ejemplo:<br />IF numero > limite THEN<br /> Print "tu número es grande"<br />ELSE<br /> Print "OK, McKey!"<br />END IF<br />Ahora veámoslo en una sóla línea:<br />IF numero > limite THEN Print "tu número es grande" ELSE Print "OK, McKey!"<br />En este ejemplo, aún queda claro, pero lo podríamos complicar con más instrucciones para ambos casos, es decir, para cuando la expresión es cierta y también cuando es falsa.<br />En los tiempos del BASIC que venían incorporados con los ordenadores, cada línea del programa había que numerarla, ya que todo lo que se escribía sin número de línea, se ejecutaba inmediatamente; al igual que ocurre con lo que se escribe en la ventana Inmediate del Visual Basic.Los números de líneas se usaban, además de porque era obligatorio, para cambiar el orden de ejecución, sobre todo después de una comparación. De esta forma, aún sin tener bloques IF/THEN/ELSE/END IF, se podían simular.¿Cómo se lograba?Usando una instrucción que muchos creen que es "indecente, antisocial, etc."La estrella del Basic: (redoble de tambores) "GOTO"A partir de hoy, más de un purista de la programación no me dirigirá la palabra... pero no me importa...<br />Se ha "denostado" (injuriado) con exageración el uso de esta instrucción.Realmente es una instrucción de "bifurcación", es decir, sirve para "IR A" otro sitio de nuestro programa.Su uso ha sido el más criticado de los NO PARTIDARIOS del Basic y siempre han basado sus críticas en el exagerado uso del GOTO en todos los programas Basic. Pero aclaremos que C también tiene esta instrucción y que cualquier programa en código máquina (ensamblador) está "plagado" de JMP que para el caso es lo mismo que el sufrido GOTO, realmente una instrucción GOTO número_linea se convierte en JMP número_linea.<br />No voy a recomendar el uso del GOTO, para nada, ya que hoy día es innecesario su uso. Antes no teníamos más remedio, porque el BASIC no disponía de instrucciones para poder estructurar el código. Pero sería una tontería querer hacer creer que no existe esta instrucción. Sabiendo que está y cómo podemos evitarla, es preferible a decir que no existe y si por casualidad la descubres... a que la uses.Por tanto, insisto en mi recomendación, (de esta forma los PURISTAS volverán a dirigirme la palabra), NO USES EL GOTO, ni aún cuando creas que no tienes más remedio... aunque, aquí entre nosotros, algunas veces es más cómodo usarlo... pero que no se entere nadie...<br />Este es un programa de los de antes, sirve para mostrar en pantalla los números del 1 al 10 y sin usar el FOR/NEXT<br />10 A = 1<br />20 Print A<br />30 A = A + 1<br />40 IF A <= 10 THEN GOTO 20<br />'Con el Commodore este programa se solía escribir así:<br />10 A=1<br />20 PRINTA:A=A+1:IFA<=10GOTO20<br />'Sin ESPACIOS NI NADA... TODO APELMAZADO... ¿que más daba usar el GOTO?<br />Imagine there's no heaven... (es que está sonando J. Lennon... un momento...)<br />En este ejemplo, es obvio que podríamos sustituirlo con:<br />10 For A = 1 To 10<br />20 Print A<br />30 Next<br />El NEXT hace lo mismo que la asignación y la comparación.Pero hay otras maneras, para ello existe una serie de instrucciones que funcionan de manera similar, veamos otros ejemplos con más instrucciones para hacer bucles, seguiré usando los números de línea por aquello de la "nostalgia", pero salvo en el primer ejemplo, en los demás no es necesario.<br />10 A = 1<br />20 While A <= 10<br />30 Print A<br />40 A = A + 1<br />50 Wend<br />El WHILE/WEND ya casi ni se usa, porque tienen un sustituto más versátil, ahora lo veremos, pero el uso sería:<br />WHILE <expresión><br /> <instrucciones si se cumple><br />WEND<br />Es decir, MIENTRAS la expresión sea cierta, repite todo lo que haya hasta el WEND.Por supuesto podemos ponerlo todo en una sola línea:10 A = 1 : While A <= 10 : Print A : A = A + 1 : Wend<br />Pero esto tampoco es recomendable, queda algo "difuso"...El WEND funciona como IF A <=10 THEN GOTO xxx, con la ventaja que evitamos el GOTO y lo que hace es comprobar si la expresión que hay tras el WHILE es cierta o no, en caso de que sea verdadero el resultado, (ya sabes, distinto de CERO), se ejecutará todo lo que hay entre WHILE y WEND. Estas instrucciones ya existían en el GWBASIC (el basic de los PCs)<br />Hay que tener cuidado con esto de que la expresiones evalúan el cero como FALSO y cualquier otro valor como VERDADERO, por ejemplo:<br />A = 1o<br />While AWhile 1<br /> Print A Print A<br /> A = A + 1 A = A + 1<br />WendWend<br />En ambos casos el bucle sería "infinito", realmente se detendría en un momento dado, ya que llegaría a "desbordarse" el valor máximo y en ese momento el programa acabaría por producirse un error... pero prueba esto y verás:<br />While 1<br /> Print "Hola Mundo"<br />Wend<br />Esto nunca finalizará, salvo que pulses CRTL+BEAK (o INTERrumpir), para detener el programa.<br />Más instrucciones para hacer bucles<br />Con el QuickBasic 3.0, (yo no llegué a tenerlo, pero creo que fue ahí dónde se introdujo), entró en funcionamiento una nueva forma de hacer bucles:DO... LOOPEl último ejemplo podríamos escribirlo así:<br />Do<br /> Print "Hola Mundo"<br />Loop<br />Pero la "gracia" de este tipo de bucle es que podemos usar dos nuevas cláusulas para evaluar cuanto durará el bucle.La primera es WHILE y funciona igual que en WHILE/WEND<br />A = 1<br />Do While A <= 10<br /> Print A<br /> A = A + 1<br />Loop<br />La ventaja es que WHILE se puede poner tanto después de DO como a continuación de LOOP.Si lo usamos como DO WHILE <expresión>... la forma de actuar es igual que WHILE/WEND, es decir, se evalúa la expresión y sólo en caso de que sea cierta, se ejecuta lo que está dentro del bucle, es decir entre DO y LOOP.Pero si evaluamos la expresión en LOOP, se ejecutará todo lo que hay tras el DO, como mínimo una vez y se seguirá repitiendo si se cumple la condición. De esta forma, como he dicho, se ejecutará el contenido del bucle, como mínimo una vez.Veamos un ejemplo:<br />A = 1<br />Do<br /> Print A<br /> A = A + 1<br />Loop While A <= 10<br />El problema es que si A, en lugar de valer 1, tiene un valor superior a 10, también se ejecutará, al menos, una vez.A = 11 : Do : Print A: A = A + 1: Loop While A <= 10Que mal queda en una sola línea, ¿verdad?<br />Pero con DO/LOOP también puede usarse UNTIL, en este caso, el bucle se repetirá HASTA que se cumpla la expresión<br />A = 1<br />Do Until A > 10<br /> Print A<br /> A = A + 1<br />Loop<br />Fíjate que la expresión ha cambiado de <= (menor o igual) a > (mayor), ya que ahora se evalúa de esta forma:Hasta que A sea mayor que diez, REPITE todo hasta LOOP.Por supuesto también podemos usarlo después del LOOP:<br />A = 1<br />Do<br /> Print A<br /> A = A + 1<br />Loop Until A > 10<br />Aquí hago la misma aclaración que antes, si el valor inicial de A es más de 10 se ejecutará como mínimo una vez.Realmente para contar de forma secuencial y prácticamente para casi todo tipo de bucle, no es necesario hacer los bucles con DO/LOOP, ya que FOR/MEXT lo hace bastante bien.<br />Sigamos con estos bucles, pero en lugar de contar de menor a mayor, vamos a contar "pa trás", es decir de mayor a menor... quién sabe, lo mismo necesitas hacer un programa que cuente al revés...<br />A = 10<br />Do While A >= 1<br /> Print A<br /> A = A - 1<br />Loop<br />Cuando se muestre el 1, A=A-1 se convertirá en A = 0 y la comparación A >= 1 no se cumplirá, por tanto dejará de repetirse el bucle, pero esto también se puede hacer con FOR/NEXT:<br />For A = 10 To 1<br /> Print A<br />Next<br />El único inconveniente es que NO SE REPITE NI UNA VEZ... ¿Por qué?Porque si no se le indica lo contrario, FOR/NEXT siempre cuenta de forma ascendente y cuando ve que A debe ir de 10 hasta 1 y que eso no es ascendente... pasa de ejecutar el bucle. Esto es una cosa a tener en cuenta, FOR siempre evalúa los valores del bucle que tiene que hacer y si no está entre los valores que debe, no se ejecuta ni una sola vez. En este caso debe empezar por DIEZ y llegar hasta UNO, así que se da cuenta de que ya ha terminado... incluso sin haber empezado... ¡que listo es el FOR!<br />Para que el FOR cuente hacia atrás, necesitamos un nuevo peldaño (esto en inglés quedaría "clavado"), en la escala evolutiva del FOR/NEXT (ahí queda eso!!!)Ya sin coñas, se necesita la palabra STEP para indicarle que no queremos ir de uno en uno de forma ascendente, en nuestro ejemplo lo usaríamos así:<br />For A = 10 To 1 Step -1<br /> Print A<br />Next<br />De esta forma contará desde 10 hasta 1, restando uno en cada repetición.Pero, ¿que hacer si queremos usar otros valores?Simplemente ponerlo después de STEP, por ejemplo:For A = 10 To 1 Step -1For A = 1 To 10 Step 3, etc, etc.<br />Insisto, todo esto está muy bien, pero en la práctica usaremos otras cosas además de contar de forma lineal, con incrementos o sin ellos... habrá veces que queramos salir de un bucle.Ya lo hemos visto, por ejemplo Exit Sub salía del procedimiento, ¿recuerdas el Exit For?Para salir de los bucles podremos Exit y a continuación For, Do, etc. Pero NO podremos salir de un bucle WHILE/WEND.Ya veremos ejemplos para estos casos y otros que surgirán más adelante.<br />Bien, creo que ya hemos dado demasiadas vueltas con tanto bucle, para terminar: los ejercicios esos que tanto os gustan.<br />1.) Haz un programa que al pulsar en un botón (CommandButton) haga un bucle entre dos valores que habrás introducido por medio de dos cajas de textos (una para el inicio y otra para el final)<br />2.) Otro que tenga una tercera caja de textos y que el valor introducido en ella sea el incremento.<br />3.) Como tercer ejercicio, una vez terminado el bucle, que muestre en un Label las veces que se ha repetido.Por ejemplo, si hacemos un bucle del uno al diez de uno en uno, se repetirá diez veces; pero si lo hacemos de dos en dos, se repetirá cinco veces...Como pista, decirte que no tendrás que hacer ninguna comparación para obtener el resultado, la solución es tan SIMPLE que seguramente la descartarás "porque no puede ser tan fácil"<br />Por supuesto, me gustaría que los bucles los hicieras tanto con FOR/NEXT y DO/LOOP. Ya puestos, podrías hacerlo con el WHILE/WEND e incluso con el GOTO...<br />¡Feliz programación!<br />Y seguimos con la costumbre esta de pedirte HYPERLINK "http://www.elguille.info/mensajealguille.asp?Subject=Sobre_el_curso6" tus comentarios sobre el curso.Sobre todo necesito saber si realmente está claro y entendible... ya que si no no valdrá para mucho el montón de horas que le dedico a cada una de las entregas... si, aunque no te lo creas, le dedico más de 5 horas a cada entrega...<br />Si no pasa nada raro, seguramente en este mismo mes habrá una nueva entrega.Nos vemos.Guillermo<br />

×