C# 跳出循環幾種方法詳解


說明:

break語句:終止並跳出循環體。
continue語句:終止當前循環,重新開始一個新的循環。
goto語句:跳轉到指定位置 。

一,continue語句

class Program
{
    static void Main(string[] args)
    {
        for(int i = 1; i <= 10; i++)
        {
            if (i == 4)
            {
                continue;
            }
            Console.WriteLine(i);
        }
    }  
}

結果

 

 從上面的執行效果可以看出,當 for 循環中的值迭代到 4 時 continue 語句結束了本次 迭代,繼續下一次迭代,因此在輸出結果中沒有 4。

 

二,break語句

class Program
{
    static void Main(string[] args)
    {
        for(int i = 1; i <= 10; i++)
        {
            if (i == 4)
            {
                break;
            }
            Console.WriteLine(i);
        }
    }  
}

結果

 

 從上面的執行效果可以看出,for 循環要完成 1~10 的輸出,但是當輸出到 4 時使用了 break 語句,結束了 for 循環,因此僅輸出了 1~3 的數。

 

三,goto語句(語句用於直接在一個程序中轉到程序中的標簽指定的位置,標簽實際上由標識符加上冒號構成。)

語法:

goto Labell;
    語句塊 1;
Labell:
    語句塊 2;

如果要跳轉到某一個標簽指定的位置,直接使用 goto 加標簽名即可。

在上面的語句中使用了 goto 語句后,語句的執行順序發生了變化,即先執行語句塊 2,再執行語句塊 1。

此外,需要注意的是 goto 語句不能跳轉到循環語句中,也不能跳出類的范圍。

由於 goto 語句不便於程序的理解,因此 goto 語句並不常用。

class Program
{
    static void Main(string[] args)
    {
        int count = 1;
    login:
        Console.WriteLine("請輸入用戶名");
        string username = Console.ReadLine();
        Console.WriteLine("請輸入密碼");
        string userpwd = Console.ReadLine();
        if (username == "aaa" && userpwd == "123")
        {
            Console.WriteLine("登錄成功");
        }
        else
        {
            count++;
            if (count > 3)
            {
                Console.WriteLine("用戶名或密碼錯誤次數過多!退出!");
            }
            else
            {
                Console.WriteLine("用戶名或密碼錯誤");
                goto login;//返回login標簽處重新輸入用戶名密碼
            }
        }
    }
}

 

結果

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM