Visual Basic - Una duda sobre el condicional IF

Life is soft - evento anual de software empresarial
 
Vista:

Una duda sobre el condicional IF

Publicado por Iván Suárez (1 intervención) el 31/01/2007 22:40:38
Hola amigos:

Hace poco que empecé a estudiar (compaginando mi actual trabajo de pladur)VB de un libro de F.J. Ceballos, nivel básico. Y como no tengo medios ni profesor (soy autodidacta) agradecería a alguien que se atreva a aclararme la siguiente duda:

En el libro dice:

Cuando utilice una estructura If tiene que escribirla de la forma que se presenta a continuación, de lo contrario ocurrirá un error de sintaxis:

1
2
3
4
5
6
7
If condición-1 then
   sentencias-1
Elseif condición-2
   sentencis-2
Else
   sentencias-n
End iIf

La ejecución de esta estructura sucede de la siguiente forma: si se cumple la condición-1, se ejecutan las sentencias-1, y si no se cumple, se examinan secuencialmente las siguiente condiciones hasta Else, ejecutándose las sentencias correspondiente al primer ElseIf cuya condición sea cierta. Si todas las condiciones son falsas, se ejecutan las sentencias-n corrpondientes a Else. En cualquier caso, se continúaen la sentencia que sigue a End If

Pues bien, en un ejemplo propuesto por el autor F.J. Ceballos, que lo expongo a continuación, no lleva el bloque End IF, a pesar de que tiene un código que pone == If vehículo <> "" Then Print "importe ="; importe == no hace falta el end if. Probé poniendo un End If y me sale el error de End If sin bloque if.

El código ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
AutoRedraw = True
vehículo = InputBox("Clase de vehículo:")
 
Select Case LCase(vehículo) 'LCase convierte la cadena a minúsculas
    Case "bicicleta"
        importe = 100
    Case "moto", "Coche"
        km = InputBox("Kilómetros:")
        importe = 30 * km
    Case "camion", "camión"
        km = InputBox("Kilómetros:")
        tm = InputBox("Toneladas:")
        importe = 30 * km + 25 * tm
    Case Else
        Print "Entrada no válida"
        vehículo = ""
    End Select
 
If vehículo <> "" Then Print "importe ="; importe
 
End Sub

Esperando vuestras respuestas, aprovecho la ocasión para enviar saludos a todos los colegas de la web del programador . com

Iván Suárez
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Una duda sobre el condicional IF

Publicado por Y@ahir (19 intervenciones) el 31/01/2007 23:30:07
El If estructurado a que te refieres sí se cierra con End If. Pero en todos los Basics (BasicA, GwBasic, Tubo Basic, Quick Basic, Visual Basic, etc. ) siempre ha existido la SENTENCIA If en su forma más simple, si cerrarla con el End If:

If Condición Then Accion [Else Accion 2]
Lo que está encerrado entre corchetes es opcional.
Y se utiliza cuando quieres indicar la acción a ejecutar en EL MISMO renglón de la condición. Y no necesariamente debe ser una sola instrucción, pueden ser varias, si las separas con el signo de dos puntos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Una duda sobre el condicional IF

Publicado por Guillermo Lamas A (25 intervenciones) el 05/02/2007 03:19:28
Estimado cuando se utiliza el IF con una sola instruccion despues del THEN no es necesario poner el END IF; no me queda claro si te da error al ponerlo sin el END IF.

Atte,

Guillermo Lamas A.
Técnico Programador de Computadores
Ingeniero Ejecución en Informática
La Serena
Chile
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar