Perl-11—迴圈修飾符

來源:互聯網
上載者:User

在編寫程式的過程中,常常要用到嵌套的迴圈結構,有時侯需要使用一種手段來中斷它;Perl提供了以下四個迴圈修飾符:continue、next、last、redo;

1、continue語句塊:

for迴圈的遞增列表是在迴圈體之後執行的,continue語句塊在功能上等價於迴圈的遞增列表;在while迴圈、until迴圈和foreach迴圈中可以加入continue語句塊:

◆ while迴圈

    while(條件運算式)

    {

        #while迴圈體

    }

    continue

    {

        #continue程式塊;可以執行while迴圈的遞增列表,操作while迴圈的迴圈控制變數;

   }

◆ until迴圈

    until(條件運算式)

    {

        #until迴圈體

    }

    continue

    {

       #continue程式碼塊;

    }

◆ foreach迴圈

    foreach  SCALAR  (LIST)

    {

       #foreach迴圈體

    }

由於continue語句塊式另外一種實現遞增列表的方式,所以,for迴圈中不能有continue語句塊;下面的寫法式錯誤的,而且有語法錯誤:

for(運算式1;運算式2;運算式3)

{

    #for迴圈體

}

continue

{

    #continue語句塊

}

在同一個時刻使用continue語句塊和next、last以及redo修飾符時,遵循以下規則:

★ next 迴圈修飾符停止執行從next語句的下一語句開始到迴圈體結束標識符之間的語句,轉去執行continue語句塊,然後再返回到迴圈體的起始處開始執行下一次迴圈;

★ last 迴圈修飾符徹底退出其所在的迴圈語句塊,從而結束迴圈,last語句之後的語句不再執行,continue語句塊也不再執行;

★ redo 迴圈修飾符直接轉到迴圈體的第一行開始重複執行本次迴圈,redo語句之後的語句不再執行,continue語句塊也不再執行;

2、 last 語句:

last 語句可以帶標號修飾符,也可以不帶標號修飾符;如:last ;或 last LABEL;

帶標號修飾符LABEL的 last 語句表示退出與標號修飾符LABEL相關聯的語句塊;不帶標號修飾符的last語句表示退出last語句所在的當前語句塊;如果是在for迴圈中或者是帶有continue語句塊,則for迴圈中的遞增列表或continue語句塊都不再被執行;

3、redo 語句:

redo 語句可以帶標號修飾符,也可以不帶標號修飾符;如: redo ;或 redo LABEL;

帶標號修飾符LABEL的redo語句表示把迴圈控制流程程直接轉到與標號修飾符LABEL相關聯的語句塊的第一行處開始執行,而不再執行redo語句之後的語句和continue語句塊;不帶標號修飾符LABEL的redo語句表示把迴圈控制流程程直接轉到當前語句塊的第一行處開始執行,而不再執行redo語句之後的語句和continue語句塊;如果是在for迴圈中或者是帶有continue語句塊,則for迴圈中的遞增列表和continue語句塊都不再被執行;

4、next 語句:

last和redo迴圈修飾符可以用於空語句塊,而next語句只能用於迴圈體;next語句表示停止執行next語句之後的語句,轉去執行continue語句塊,最後再轉到迴圈體的第一行處開始執行;next可以帶標號修飾符,也可以不帶標號修飾符;如:next ;或 next LABEL;

不帶標號修飾符的next語句將迴圈控制流程程轉到當前迴圈的第一行處開始執行;帶標號修飾符的next語句則退出與標號修飾符相關聯的迴圈;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.