第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

打破嵌套循環(huán)

打破嵌套循環(huán)

C#
慕桂英3389331 2019-11-18 12:12:45
打破嵌套循環(huán)如果我有一個嵌套在另一個中的for循環(huán),我怎么能以最快的方式有效地從兩個循環(huán)(內(nèi)部和外部)中出來?我不想使用布爾值,然后不得不說去另一個方法,而只是在外部循環(huán)后執(zhí)行第一行代碼。這是一個快速而好的方式嗎?謝謝我認(rèn)為異常并不便宜/應(yīng)該只是在一個真正特殊的條件下拋出等等。因此,從性能的角度來看,我認(rèn)為這種解決方案并不好。我覺得利用.NET(anon方法)中的新功能做一些非?;镜氖虑槭遣粚Φ摹R虼?,tvon(抱歉不能拼寫完整的用戶名!)有一個很好的解決方案。Marc:很好地使用了anon方法,這也很棒但是因為我可以在一個不使用支持anon方法的.NET / C#版本的工作中,我也需要知道一種傳統(tǒng)的方法。
查看完整描述

2 回答

?
德瑪西亞99

TA貢獻1770條經(jīng)驗 獲得超3個贊

嗯,goto但這很難看,并不總是可能的。您還可以將循環(huán)放入方法(或anon-method)并用于return退回到主代碼。

    // goto
    for (int i = 0; i < 100; i++)
    {
        for (int j = 0; j < 100; j++)
        {
            goto Foo; // yeuck!
        }
    }Foo:
    Console.WriteLine("Hi");

VS:

// anon-methodAction work = delegate{
    for (int x = 0; x < 100; x++)
    {
        for (int y = 0; y < 100; y++)
        {
            return; // exits anon-method
        }
    }};work(); // execute anon-methodConsole.WriteLine("Hi");

請注意,在C#7中我們應(yīng)該得到“本地函數(shù)”,其中(語法tbd等)意味著它應(yīng)該工作如下:

// local function (declared **inside** another method)void Work(){
    for (int x = 0; x < 100; x++)
    {
        for (int y = 0; y < 100; y++)
        {
            return; // exits local function
        }
    }};Work(); // execute local functionConsole.WriteLine("Hi");



查看完整回答
反對 回復(fù) 2019-11-19
?
Helenr

TA貢獻1780條經(jīng)驗 獲得超4個贊

C#自適應(yīng)方法經(jīng)常用于C - 外部循環(huán)變量的設(shè)置值在循環(huán)條件之外(即對于循環(huán)使用int變量INT_MAX -1通常是不錯的選擇):

for (int i = 0; i < 100; i++){
    for (int j = 0; j < 100; j++)
    {
        if (exit_condition)
        {
            // cause the outer loop to break:
            // use i = INT_MAX - 1; otherwise i++ == INT_MIN < 100 and loop will continue 
            i = int.MaxValue - 1;
            Console.WriteLine("Hi");
            // break the inner loop
            break;
        }
    }
    // if you have code in outer loop it will execute after break from inner loop    }

正如代碼中的注釋所說,break不會神奇地跳轉(zhuǎn)到外循環(huán)的下一次迭代 - 所以如果你有內(nèi)循環(huán)之外的代碼,這種方法需要更多的檢查。在這種情況下考慮其他解決方案

這種方法適用于forwhile循環(huán),但不起作用foreach。如果foreach你沒有代碼訪問隱藏的枚舉器,所以你不能改變它(即使你可能IEnumerator沒有一些“MoveToEnd”方法)。

對內(nèi)聯(lián)評論作者的致謝: Meta的
i = INT_MAX - 1建議/ ygoe的評論。 正確的jmbpiano通過內(nèi)部循環(huán)后約代碼備注blizpasta 
forforeach
IntMax 



查看完整回答
反對 回復(fù) 2019-11-19
  • 2 回答
  • 0 關(guān)注
  • 356 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號