Estructura de seleccción Select Case
Visual Basic .NET

Bueno hace poco me dejaron en la universidad un pequeño taller (ya que apenas nos estamos introduciendo en .NET(Pero cabe aclarar que yo ya venía de manejar VB6)) en el que nos pedían hacer una calculadora. Y simplemente recordando algunos de mis conocimientos decidí utilizar la estructura Select case para este fin.

Calculadora en Visual basic .NET


Bien, el algoritmo es netamente sencillo. aunque varia según la operación que vayamos a realizar, por ejemplo en la suma quedaría algo como esto, cuando hagan clic en el botón "+":

[highlight=vb]Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
suma = suma + Val(TextBox1.Text)
opcion = "+"
TextBox1.Text = ""
End Sub[/highlight]

Y en el botón "=" puse esto:

[highlight=vb]Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
Select Case opcion
Case "+"
resultado = suma + Val(TextBox1.Text)
TextBox1.Text = resultado
Case "-"
resultado = resta - Val(TextBox1.Text)
TextBox1.Text = resultado
Case "*"
resultado = Val(TextBox1.Text) * multiplicacion
TextBox1.Text = resultado
Case "/"
resultado = division / Val(TextBox1.Text)
TextBox1.Text = resultado
End Select
End Sub[/highlight]

Utilice una variable tipo string que guarda la opción seleccionada por el usuario, es decir, cada vez que hagan clic en un botón de operación este guardará el string "+","-","*" o "/", y luego utilizo el case para que se lea la variable de opción y así mismo realice una operación.

La multiplicación es un caso distinto, primero debo inicializar la variable pero con uno "1" y luego cuando hagan clic en el botón de multiplicar, este solo guarde lo que hay en el textbox, para luego realizar la operación a través del case.

[highlight=vb]Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
multiplicacion = Val(TextBox1.Text)
TextBox1.Text = ""
opcion = "*"
End Sub[/highlight]