miércoles, 10 de marzo de 2010

goto

La instrucción goto transfiere el control del programa directamente a una instrucción identificada por una etiqueta.

Comentarios
Un uso habitual de goto consiste en transferir el control a una etiqueta switch-case específica o a la etiqueta predeterminada de una instrucción switch.

La instrucción goto también es útil para salir de bucles de varios niveles de anidamiento.

Ejemplo
El ejemplo siguiente muestra cómo utilizar goto en una instrucción switch.

// sentencias_goto_switch.cs
using System;
class SwitchTest
{
static void Main()
{
Console.WriteLine("Dimensiones del cafe: 1=Small 2=Medium 3=Large");
Console.Write("Especifique su seleccion: ");
string s = Console.ReadLine();
int n = int.Parse(s);
int costo = 0;
switch (n)
{
case 1:
costo += 25;
break;
case
2:
costo += 25;
goto case 1;
case 3:
costo += 50;
goto case 1;
default:
Console.WriteLine("Seleccion Invalida.");
break;
}
if (costo != 0)
{
Console.WriteLine("Inserte {0} pesos.", costo);
}
Console.WriteLine("Negocio concluido.");
}
}


Entrada
2
Resultados del ejemplo
Dimensiones del cafe: 1=Small 2=Medium 3=Large
Entre su seleccion: 2
Inserte 50 pesos.
Negocio concluido.



El siguiente ejemplo muestra el uso de goto para salir de un conjunto de bucles anidados.

// sentencia_goto.cs
// Busqueda de bucles anidados
using System;
public class GotoTest1
{
static void Main()
{
int x = 200, y = 4;
int count = 0;
string[,] array = new string[x, y];

// Inicializo array:
for (int i = 0; i < x; i++)

for (int j = 0; j < y; j++)
array[i, j] = (++count).ToString();

// Pido el valor:
Console.Write("Digite un numero a buscar: ");

string numero = Console.ReadLine();

// Busqueda:
for (int i = 0; i < x; i++)
{
for (int j = 0; j < y; j++)
{
if (array[i, j].Equals(numero))
{
goto Found;
}
}
}

Console.WriteLine("El numero {0} no fue encontrado", numero);
goto Finish;

Found:
Console.WriteLine("El numero {0} fue encontrado.", numero);

Finish:
Console.WriteLine("Fin de la busqueda.");
}
}

Entrada
44

Resultados del ejemplo
Digite el numero a buscar: 44
El numero 44 fue encontrado.
Fin de la busqueda.

1 comentario:

  1. Nunca habia utilizado esta funcion habra que echarle un ojo saludos.

    ResponderBorrar

Preguntas;Comentarios;Aportes;Criticas Positivas;Recomendaciones.