筆記2 循環

四種循環

四種循環:
while
for //用的最多
foreach //用的最多
do…while //用的最少

while

while(條件){     
            1.
            2.
}    //只要這個條件滿足,就會執行{}裏的語句。語句執行完後,再來判斷是否滿足條件,
      //若滿足,則繼續執行{}裏的語句,直到不滿足條件時爲止。

            int n = 0;
            while (n < 10)
            {
                Console.WriteLine(n);   //輸出一行n的值
                n++;         //n自增
            }
            //爲了不讓程序退出
            Console.ReadKey();

通常像這樣的判斷一個數值與另一個數值的關係,會用for
while一般會用來做“死循環”。給它一個“死循環”(true或者1)之後,它就會一直執行裏面的代碼。
內部做一個條件,當達到這個條件時,才跳出“死循環”。

          while (true)
            {
                Console.WriteLine(n);   //輸出一行n的值
                Update()     //例如:寫了Update這樣一個方法,就會一直被調用
            }
            //爲了不讓程序退出
            Console.ReadKey();

do…while(很少用)

do
{
     1.
     2.
} while(條件)
 //do...while,條件是在後面。它先運行{}裏的代碼,之後再判斷是否滿足條件。
 //所以即便是初始值不滿足條件,它也會執行1次{}裏的代碼。

            int n = 0;    
            do
            {
                n++;
            Console.WriteLine(n);
               
            } while (n < 10);
            
            /*n的初始值爲0,先運行{}裏的代碼:首先運行n++,變爲1;之後輸出一行n的值——1。
            接下來進行判斷是否小於10,由於小於,所以再次循環。直到n=9時,n++得10,並且輸出。
            進行判斷,不再滿足條件,循環停止,輸出的數值是1~9,且一個數字佔一行。
            */
            //爲了不讓程序退出
            Console.ReadKey();

for (用的最多)

for的用法一

for(變量的聲明;條件; 對變量進行操作)
{
     1.
     2.
} 
//注意間隔用分號
//注意執行順序:
for(順序1:變量的聲明;順序2-5-8:條件;順序4-7:對變量進行操作)
{
    順序3-6:代碼
}
順序9:循環外代碼。    //比如此處,經判斷條件不滿足,則會跳出循環,執行循環外的代碼。

      for(int i = 0; i < 10; i += 3)     //for(聲明i=0,條件是i是否小於10,操作:i自加3)
            {
                Console.WriteLine(i);           //每行輸出一個i的值
            }
//結果:各行輸出的數字分別是0、3、6、9

            //爲了不讓程序退出
            Console.ReadKey();

for的用法二(遍歷)

特點:可以規定遍歷次數,可以修改遍歷後的信息。

      int[] items = { 1001, 1002, 1003, 1004 };
 //聲明一個數組,叫items,即物品的Id集合。 這個數組裏有1001號物品、1002號物品、1003號物品、1004號物品。
            //遍歷(依次打印)
            for(int i = 0; i < items.Length; i++)     
            /*
                此時,int i = 0中的i代表索引,即當前拿數組裏的第幾項;0就代表拿第1項。
                items.Length,意思是數組長度。此處i應該小於數組長度,其實可以寫成i < 4。
                因爲這個數組總共4項,所以最大是4.如果寫成“i < 5”,就越界了。                                
                */
            {
                Console.WriteLine(items[i]);           //每行輸出數組裏的第幾個
            }


            //爲了不讓程序退出
            Console.ReadKey();

foreach(快速遍歷)

特點:不需要輸入數組長度,但不能規定遍歷到第幾次,不可修改快速遍歷得到的信息。

   int[] items = { 1001, 1002, 1003, 1004 };
   //聲明一個數組,叫items,是物品的Id集合。 這個數組裏有1001號物品、1002號物品、1003號物品、1004號物品。
//快速遍歷
   foreach(int n in items) //這個結構分兩部分,由in隔開。in右側爲你要快速遍歷的數組名稱,左側放一個變量。
   {                        //這裏的n與上面的i不同,i表示索引,而此處的n是直接被賦值的。
                                     //也就是說,此處含義爲:從數組裏取出一個值直接給了n

    Console.WriteLine(n);    //此時,打印只需要打印n的值即可。
    } 
            

     //爲了不讓程序退出
    Console.ReadKey();

兩個通用關鍵字

兩個通用關鍵字:
break 跳出 //用的多
continue 繼續

break 跳出(用的多)

跳出的意思是,如果滿足條件,就會跳出離它最近的循環。
也就是說:如果不滿足條件,就繼續break下面的循環體,接着再次進入循環。
直到不滿足條件時,纔會跳出,break下面的循環體也不會再被執行。

:查找1002號物品

      int[] items = { 1001, 1002, 1003, 1004 };
   //聲明一個數組,叫items,即物品的Id集合。 這個數組裏有1001號物品、1002號物品、1003號物品、1004號物品。
            //遍歷(依次打印)
            for(int i = 0; i < items.Length; i++)     
               /*
                此時,int i = 0中的i代表索引,即當前拿數組裏的第幾項;0就代表拿第1項。
                items.Length,意思是數組長度。此處i應該小於數組長度,其實可以寫成i < 4。
                因爲這個數組總共4項,所以最大是4.如果寫成“i < 5”,就越界了。                                
                */
            {
               Console.WriteLine(items[i]);    //每行輸出數組裏的第幾個
               
               if (items[i] == 1002)        //if(條件){},如果滿足條件就執行一次{}裏的代碼;
                {                             // 如果不滿足,則跳出。相當於一次性的while。
                    break;     //break是跳出離它最近的那個循環,此處是for這個遍歷循環。
                }

             }
               
/*結果:輸出1001、1002,分別各佔一行。如果 Console.WriteLine(items[i]);和if互換位置,則結果爲1001。
因爲首先1001不等於1002,所以會繼續執行break之後的循環體,將1001寫出來。之後再次進入循環,i++,得到1002。
因爲1002滿足if,所以會break(跳出了for循環)。跳出了循環,break後的循環體便不會被執行了,所以沒有寫出1002。*/
           
            //爲了不讓程序退出
            Console.ReadKey();

continue 繼續

繼續的意思是,如果滿足條件,就忽略continue下面的循環體,接着再次進入循環。
如果不滿足條件,就會繼續continue下面的循環體,然後再進入循環。

 int[] items = { 1001, 1002, 1003, 1004 };
//聲明一個數組,叫items,是物品的Id集合。 這個數組裏有1001號物品、1002號物品、1003號物品、1004號物品。
            //遍歷(依次打印)
            for(int i = 0; i < items.Length; i++)     /*
                此時,int i = 0中的i代表索引,即當前拿數組裏的第幾項;0就代表拿第1項。
                items.Length,意思是數組長度。此處i應該小於數組長度,其實可以寫成i < 4。
                因爲這個數組總共4項,所以最大是4.如果寫成“i < 5”,就越界了。                                
                */
            {
                if (items[i] == 1002)        /*if(條件){},如果滿足條件就執行一次{}裏的代碼;
                                                如果不滿足,則跳出。相當於一次性的while。*/
                {
                    continue;
                }
                Console.WriteLine(items[i]);           //每行輸出數組裏的第幾個

//結果:除了1002,其他都會被輸出。輸出了1001、1003、1004。            
     
            //爲了不讓程序退出
            Console.ReadKey();

:查找1002號物品

 int[] items = { 1001, 1002, 1003, 1004 };
 //聲明一個數組,叫items,是物品的Id集合。 這個數組裏有1001號物品、1002號物品、1003號物品、1004號物品。
            //遍歷(依次打印)
            for(int i = 0; i < items.Length; i++)     /*
                此時,int i = 0中的i代表索引,即當前拿數組裏的第幾項;0就代表拿第1項。
                items.Length,意思是數組長度。此處i應該小於數組長度,其實可以寫成i < 4。
                因爲這個數組總共4項,所以最大是4.如果寫成“i < 5”,就越界了。                                
                */
            {
                if (items[i] != 1002)        /*if(條件){},如果滿足條件就執行一次{}裏的代碼;
                                              如果不滿足,則跳出。相當於一次性的while。*/
                {
                    continue;
                }
                Console.WriteLine(items[i]);           //每行輸出數組裏的第幾個

//結果:只輸出1002。因爲,不等於1002的話,就滿足了if條件,觸發了continue導致continue下面的循環體沒有被執行,
而是再次進入循環。直至遍歷完。            
     
            //爲了不讓程序退出
            Console.ReadKey();

break和continue的理解練習

          int[] items = { 1001, 1002, 1003, 1004 };
  //聲明一個數組,叫items,是物品的Id集合。 這個數組裏有1001號物品、1002號物品、1003號物品、1004號物品。
            //遍歷(依次打印)
            for(int i = 0; i < items.Length; i++)     /*
                此時,int i = 0中的i代表索引,即當前拿數組裏的第幾項;0就代表拿第1項。
                items.Length,意思是數組長度。此處i應該小於數組長度,其實可以寫成i < 4。
                因爲這個數組總共4項,所以最大是4.如果寫成“i < 5”,就越界了。                                
                */
            {
          
                if (items[i] == 1001)    //if(條件){},如果滿足條件就執行一次{}裏的代碼;如果不滿足,則跳出。
                {                       //如果不滿足,則跳出。相當於一次性的while。相當於一次性的while。
                    continue;
                }
                Console.WriteLine(items[i]);           //每行輸出數組裏的第幾個

                if (items[i] == 1003)
                {
                    break; 
                }

            }
            
/*分析:
首先1001符合第一個if條件,所以觸發了continue,導致continue下面的循環體不能被執行。
接着再次進入循環,此時因爲i++的1002,1002不符合第一個if,所以執行了continue下面的程序,寫出了1002。
由於不滿足第二個if,所以沒有觸發break,再次進入循環。
由於i++得1003,1003不滿足第一個if,所以執行了continue下面的程序,寫出了1003。
由於滿足第二個if,所以觸發break,跳出了循環。  
最終結果爲:輸出了1002、1003.          
 */
            //爲了不讓程序退出
            Console.ReadKey();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章