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

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

使用“ goto”語句不好嗎?

使用“ goto”語句不好嗎?

在研究了如何突破次級循環(huán)之后while (true) { // Main Loop    for (int I = 0; I < 15; I++) { // Secondary loop        // Do Something        break; // Break main loop?    }}大多數(shù)人建議調(diào)用“ goto”功能, 如以下示例所示:while (true) { // Main Loop    for (int I = 0; I < 15; I++) { // Secondary Loop        // Do Something        goto ContinueOn; // Breaks the main loop    }}ContinueOn:然而; 我經(jīng)常聽到'goto'聲明是不好的做法。下圖完美地說明了我的觀點:所以goto語句實際上有多糟糕,為什么?有沒有比使用“ goto”語句更有效的方法來打破主循環(huán)?
查看完整描述

3 回答

?
Helenr

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

編輯:

goto語句實際上有多糟糕,為什么?

這取決于實際情況。我不記得任何時候我發(fā)現(xiàn)它使代碼比重構(gòu)更易讀。這也取決于您對可讀性的個人看法-從其他答案中可以明顯看出,有些人比其他人更不喜歡它。(有意思的是,它在生成的代碼中得到了廣泛的使用-C#5中的所有異步/等待代碼實際上都是基于很多getos的)。

問題在于,goto傾向于使用的情況傾向于是無論如何重構(gòu)都可以幫助事情的情況-而goto堅持使用隨著代碼變得更加復(fù)雜而變得難以遵循的解決方案。

有沒有比使用“ goto”語句更有效的方法來打破主循環(huán)?

絕對。將您的方法提取到一個單獨的函數(shù)中:

while (ProcessValues(...)){
    // Body left deliberately empty}...private bool ProcessValues(){
   for (int i = 0; i < 15; i++)
   {
       // Do something
       return false;
   }
   return true;}

我通常更喜歡這樣做,而不是引入額外的局部變量來跟蹤“我已經(jīng)完成”了-盡管當(dāng)然可以。


查看完整回答
反對 回復(fù) 2019-09-26
  • 3 回答
  • 0 關(guān)注
  • 770 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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