<rp id="l2es4"><acronym id="l2es4"></acronym></rp><dd id="l2es4"><pre id="l2es4"></pre></dd>
<button id="l2es4"><object id="l2es4"><cite id="l2es4"></cite></object></button>

<form id="l2es4"><tr id="l2es4"></tr></form>

  • 
    
        1. 新疆軟件開發

          本站首頁 軟件開發 成功案例 公司新聞 公司簡介 客服中心 軟件技術 網站建設
            您現在的位置: 新疆二域軟件開發公司 >> 開發語言 >> 文章正文

          各種FOR循環結構的整理

             在網上看到這篇關于for循環文章,介紹給大家看看:
          for循環的一般結構:

          for (int i = 0; i < 100; i++)
          {
              Console.WriteLine(i);
          }
           

          遞減的循環:

           

                      for (int i = 100; i > 0 ; i--)
                      {
                          Console.WriteLine(i);
                      }
           
          但for當然不止這樣一種用法。for的定義,()內的三段表達式,除了中間的必須產生布爾型,并未對其余兩段有所限制,只要是表達式就可以了。在Lucene.Net中就有好幾次這樣的用法。例如:

           

          for (Token token = input.Next(result); token != null; token = input.Next(result))
          {
               int len = token.TermText().Length;
               if (len >= min && len <= max)
               {
                   return token;
               }
          }
           
          這個語句和下面代碼的效果是一樣的:


                     Token token;
                      while((token = input.Next(result)) != null)
                      {
                          int len = token.TermText().Length;
                          if (len >= min && len <= max)
                          {
                              return token;
                          }
                      }
           
          其實我認為在這兩種循環中,第二種比第一種好理解一點。

          還有這種

          for (i = 75; i-- > 0; )
              jjrounds[i] = 0x80000000;
           

          出了一個空表達式,呵呵。其實理解一下也很簡單,和下面代碼的效果一樣:


          for (i = 75; i > 0; i--)
              jjrounds[i] = 0x80000000;
           

          空表達式,也是一個表達式啊,放在這里也不犯法。
           

          嘿嘿,還有其他的表達式,比如:

           

          for (int i = 0; i < length; i++, pos++)
           

          這個應該不難理解,第三個表達式有兩個,第一個當然也可以有兩個

           

          比如            for (int i = 100, j = 100; i > 0 ; i--,j++)

          中間的表達式要想用兩個就要加運算符了for (int i = 100, j = 100; i > 0 || j>0 ; i--,j++)

           這樣就總結出三種for循環樣式

          1、for(int i = 0;i < 100;i++)  //遞減和遞加的算一種

          2、for(;true;)     //有空表達式的

          3、for (int i = 100, j = 100; i > 0 || j>0 ; i--,j++)   //有多表達式的

           

          好像就這么多了。但是還有一種,我無法理解的表達式

          for(;;)這是個死循環,汗。!廬山瀑布汗啊,反正我理解不了。

           嘿嘿,理解上面的表達式,基本上看別人的代碼就不會摸不著頭腦了。那是不是真的沒有了呢?

          來試試這種

                   static void Main(string[] args)
                  {
                      for (Act(); ; )
                      {

                      }
                      Console.Read();
                  }

                  static void Act()
                  {


                  }
           

          哈哈,真是徹底被打敗了。注意:沒見過有這么用的,純粹是實驗,應用產生的后果我不負責啊。

          放上三個方法爽爽:

           

                  static void Main(string[] args)
                  {
                      for (Act1(); Act2(); Act3())
                      {

                      }
                      Console.Read();
                  }

                  static void Act1()
                  {

                  }

                  static bool Act2()
                  {
                      return true;
                  }

                  static bool Act3()
                  {
                      return true;
                  }
           

          當然,你非要用個委托,我也沒意見:


              delegate void Bind();
              class Program
              {
                  static void Main(string[] args)
                  {
                      Bind b = new Bind(Act1);
                      for (b(); Act2(); Act3())
                      {

                      }
                      Console.Read();
                  }

                  static void Act1()
                  {

                  }

                  static bool Act2()
                  {
                      return true;
                  }

                  static bool Act3()
                  {
                      return true;
                  }
              }
           
              delegate void Bind();
              class Program
              {
                  static event Bind bindEvent;

                  static void Main(string[] args)
                  {
                      Bind b = new Bind(Act1);
                      bindEvent += new Bind(Program_bindEvent);
                      for (b(); Act2(); bindEvent())
                      {

                      }
                      Console.Read();
                  }

                  static void Program_bindEvent()
                  {
                    
                  }

                  static void Act1()
                  {

                  }

                  static bool Act2()
                  {
                      return true;
                  }

                  static bool Act3()
                  {
                      return true;
                  }
              }
           
              看出來了,只要是表達式,就能使用!除了第二個表達式必須為空,或者布爾值外,其他兩個基本沒什么限制。第二表達式為空則是死循環。

          作者:未知 | 文章來源:未知 | 更新時間:2008-8-5 8:52:45

        2. 上一篇文章:

        3. 下一篇文章:

        4. 相關文章:
          沒有相關文章
          軟件技術
          · 開發語言
          · Java技術
          · .Net技術
          · 數據庫開發
          最新文章  
          ·搜集整理的asp.net的驗證方
          ·各種FOR循環結構的整理
          ·軟件項目開發中應該考慮那
          ·搜集整理的javascript sel
          ·軟件開發中項目經理有那些
          ·學習如何在Lambda表達式進
          ·C++基礎知識:結構體數據的
          ·C#實現短信發送程序的例子
          ·sun最近修補了一部分java的
          ·rss定制的另外一種實現方式
          ·delphi實現利用arp欺騙來實
          ·基礎學習:基于WF的流程框
          ·網絡編程中怎樣得知一次數
          ·如何逆序輸出單鏈表?
          ·軟件開發過程中的性能設計
          關于我們 | 軟件開發 | 下載試用 | 客服中心 | 聯系我們 | 友情鏈接 | 網站地圖 | 新疆電子地圖 | RSS訂閱
          版權所有 © 2016 新疆二域軟件開發網 www.ayxjs.cn All Rights Reserved 新ICP備14003571號
          新疆軟件開發總機:0991-4842803、4811639.
          客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯大廈A-5C 郵編:830000
           
          精品亚洲av乱码一区二区三区 - av网站大全 - 久久精品国产亚洲av高清热 - 厨房里强摁做开腿呻吟
          <rp id="l2es4"><acronym id="l2es4"></acronym></rp><dd id="l2es4"><pre id="l2es4"></pre></dd>
          <button id="l2es4"><object id="l2es4"><cite id="l2es4"></cite></object></button>

          <form id="l2es4"><tr id="l2es4"></tr></form>

        5.