Foros del Web » Programación para mayores de 30 ;) » .NET »

Un novato con sentencias if then else

Estas en el tema de Un novato con sentencias if then else en el foro de .NET en Foros del Web. Hola, acabo de empezar con esto de visual basic pero visual studio express 2010 me marca un error con if then else, si alguien me ...
  #1 (permalink)  
Antiguo 18/11/2012, 07:44
Avatar de legomolina  
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 12 años, 10 meses
Puntos: 3
Un novato con sentencias if then else

Hola, acabo de empezar con esto de visual basic pero visual studio express 2010 me marca un error con if then else, si alguien me pudiese ayudar, se lo agradeceria.
Código vb:
Ver original
  1. Module primo
  2.     Dim numero As Integer
  3.     Private Function resto(ByVal num As Integer) As Integer
  4.         Dim resultado, i As Integer
  5.         i = 1
  6.         resultado = 1
  7.  
  8.         Do
  9.             If num Mod i = 0 Then resultado = 0
  10.             Elseif resto(numero) Then
  11.                 resultado = 1
  12.             End if
  13.             End if
  14.         Loop Until i = num
  15.  
  16.         resto = resultado
  17.     End Function
  18.  
  19.  
  20.     Sub main()
  21.         System.Console.WriteLine("Escribe un numero cualquiera sin decimales y te dira si es primo o no")
  22.         numero = Console.ReadLine()
  23.         If resto(numero) = 0 Then System.Console.WriteLine("El numero {0} no es primo", numero)
  24.         else If resto(numero) = 1 Then System.Console.WriteLine("El numero {0} es primo", numero)
  25.         End If
  26.  
  27.         End If
  28.     End Sub
  29. End Module
Gracias por la ayuda

PD: es un ejercicio del tuto que sigo para aprender
  #2 (permalink)  
Antiguo 03/12/2012, 11:34
BalamKhai
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Un novato con sentencias if then else

En el primer If, donde pones:

Código:
        Do
            If num Mod i = 0 Then resultado = 0
            Elseif resto(numero) Then
                resultado = 1
            End if
            End if
        Loop Until i = num
Te da error por que tienes dos "end if" , cuando solo deberías tener uno. Lo que sucede es que el "elseif" se cierra con el mismo End If.

En el segundo If.
Código:
	If resto(numero) = 0 Then System.Console.WriteLine("El numero {0} no es primo", numero)
        	else If resto(numero) = 1 Then System.Console.WriteLine("El numero {0} es primo", numero)
        End If
Estas evaluando una única condición así que puedes hacerlo igualmente con un "elseif"

así

Código:
if resto(numero) = 0 then
   System.Console.WriteLine("El numero {0} no es primo", numero)
elseif resto(numero) = 1 then
   System.Console.WriteLine("El numero {0} es primo", numero)
endif
o con 2 if sería:

Código:
if resto(numero) = 0 then
   System.Console.WriteLine("El numero {0} no es primo", numero)
else 'Aquí no va ninguna expresion'
   if    resto(numero) = 1 then
      System.Console.WriteLine("El numero {0} es primo", numero)
   end if
end if
  #3 (permalink)  
Antiguo 04/12/2012, 15:09
Avatar de legomolina  
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Un novato con sentencias if then else

Gracias, la segunda solucion me ha valido pero la primera, toquiteando he visto que te lo pone bien si pones todo en una sola linea.
Código vb:
Ver original
  1. Do
  2.             If num Mod i = 0 Then resultado = 0 Else <---todo en la misma linea
  3.             If resto(numero) Then
  4.                 resultado = 1
  5.             End If
  6.         Loop Until i = num

La vedad es que sigo sin entenderlo pero si asi funciona, pues lo haremos asi...
De todas formas, muchas gracias.

Etiquetas: basic, sentencias, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:49.