星期三, 5月 21, 2014

[C#] 跳躍陳述式

C# 中的跳躍陳述式分別為 break、continus、goto 和 return
MSDN 說明:
  • break:終止它所在之最靠近的封閉式迴圈或 switch 陳述式。 程式控制權轉移到終止陳述式之後的陳述式 (如果有的話)。
  • continus:將程式控制權轉移到它所在之封閉反覆運算陳述式 (Iteration Statement) 的下一個反覆運算。
  • goto:
    • goto 陳述式將程式控制直接轉移到標記陳述式。
    • goto 的常見用法是轉移控制至特定的 switch-case 標記或 switch 陳述式中預設的標記。
    • goto 陳述式對於跳出複雜的巢狀迴圈也很有用。
  • return: return 陳述式終止其所在處之方法的執行,並且轉移程式控制權至呼叫的方法

  • break VS return
static void Main(string[] args)
  {
      DemoReturn();
      DemoBreak();

      // 輸出結果
      // DemoReturn 首
      // DemoBreak 首
      // DemoBreak 尾
  }

  public static void DemoReturn()
  {

      Console.WriteLine("DemoReturn 首");

      int[] intArrary = new int[] { 0, 1, 2, 3, 4, 5, 6, 7 };

      foreach (int item in intArrary)
      {
          // 使用 return 會回到呼叫這個 Method 的呼叫點,也就是 Main 內的 DemoReturn() 去,不會再往下執行
          if (item == 5) return;
      }

      Console.WriteLine("DemoReturn 尾");
  }

  public static void DemoBreak()
  {

      Console.WriteLine("DemoBreak 首");

      int[] intArrary = new int[] { 0, 1, 2, 3, 4, 5, 6, 7 };

      foreach (int item in intArrary)
      {
          // 使用 Break 的話,會離開 foreach 並繼續在 DemoBreak 中往下跑到 "DemoBreak 尾"
          if (item == 5) break;
      }

      Console.WriteLine("DemoBreak 尾");
  }
[C#] 跳躍陳述式
  • break VS continus
static void Main(string[] args)
{
    for (int i = 0; i < 10; i++)
    {
        // 迴圈跑到 5 時,跳出 for 迴圈,之後就不會繼續跑,只會顯示 0 - 4 
        if (i == 5) break;
        Console.WriteLine(string.Format("break demo:{0}", i));
    }

    Console.WriteLine("=====================================");

    for (int i = 0; i < 10; i++)
    {
        // 迴圈跑到 5 時,會回到 for 迴圈繼續跑,之後會繼續跑,只有 5 不會顯示
        if (i == 5) continue;
        Console.WriteLine(string.Format("continus demo:{0}", i));
    }
}
[C#] 跳躍陳述式-2

沒有留言:

張貼留言