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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

打破嵌套循環(huán)

打破嵌套循環(huán)

C#
ibeautiful 2019-07-24 14:24:27
打破嵌套循環(huán)如果我有一個(gè)嵌套在另一個(gè)中的for循環(huán),我怎么能以最快的方式有效地從兩個(gè)循環(huán)(內(nèi)部和外部)中出來?我不想使用布爾值,然后不得不說去另一個(gè)方法,而只是在外部循環(huán)后執(zhí)行第一行代碼。這是一個(gè)快速而好的方式嗎?謝謝我認(rèn)為異常并不便宜/應(yīng)該只是在一個(gè)真正特殊的條件下拋出等等。因此,從性能的角度來看,我認(rèn)為這種解決方案并不好。我覺得利用.NET(anon方法)中的新功能做一些非常基本的事情是不對(duì)的。因此,tvon(抱歉不能拼寫完整的用戶名?。┯幸粋€(gè)很好的解決方案。Marc:很好地使用了anon方法,這也很棒但是因?yàn)槲铱梢栽谝粋€(gè)不使用支持anon方法的.NET / C#版本的工作中,我也需要知道一種傳統(tǒng)的方法。
查看完整描述

2 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

嗯,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");

請(qǐng)注意,在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");


查看完整回答
反對(duì) 回復(fù) 2019-07-24
?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

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

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

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

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


查看完整回答
反對(duì) 回復(fù) 2019-07-24
  • 2 回答
  • 0 關(guān)注
  • 421 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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