AnteriorPosterior

2.3. Saltar a otro punto del programa: goto

  Curso: Programación en C# (2015), por Nacho Cabanes

2.3. Saltar a otro punto del programa: goto

El lenguaje C# también permite la orden "goto", para hacer saltos incondicionales. Su uso indisciplinado está muy mal visto, porque puede ayudar a hacer programas llenos de saltos, muy difíciles de seguir. Pero en casos concretos puede ser muy útil, por ejemplo, para salir de un bucle muy anidado (un "for" dentro de otro "for" que a su vez está dentro de otro "for": en este caso, "break" sólo saldría del "for" más interno). Al igual que ocurría con la orden "break", será preferible replantear las condiciones de forma más natural, y no utilizar "goto".

El formato de "goto" es

   goto donde;

y la posición de salto se indica con su nombre seguido de dos puntos (:)

   donde:

como en el siguiente ejemplo:

// Ejemplo_02_03a.cs
// "for" y "goto"
// Introducción a C#, por Nacho Cabanes
 
using System;
 
public class Ejemplo_02_03a
{
    public static void Main()
    {
        int i, j;
 
        for (i=0; i<=5; i++)
            for (j=0; j<=20; j=j+2)
            {
                if ((i==1) && (j>=7)) 
                    goto salida;
                Console.WriteLine("i vale {0} y j vale {1}.", i, j);
            }
 
        salida:
            Console.Write("Fin del programa");
 
    }
}
 

El resultado de este programa es:

  i vale 0 y j vale 0.
  i vale 0 y j vale 2.
  i vale 0 y j vale 4.
  i vale 0 y j vale 6.
  i vale 0 y j vale 8.
  i vale 0 y j vale 10.
  i vale 0 y j vale 12.
  i vale 0 y j vale 14.
  i vale 0 y j vale 16.
  i vale 0 y j vale 18.
  i vale 0 y j vale 20.
  i vale 1 y j vale 0.
  i vale 1 y j vale 2.
  i vale 1 y j vale 4.
  i vale 1 y j vale 6.
  Fin del programa

Vemos que cuando i=1 y j>=7, se sale de los dos "for".

Ejercicios propuestos:

Ejercicio propuesto 2.3.1: Crea un programa que escriba los números del 1 al 10, separados por un espacio, sin avanzar de línea. No puedes usar "for", ni "while", ni "do..while", sólo "if" y "goto".

Actualizado el: 12-11-2014 00:02

AnteriorPosterior