C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用

逍遙小丸子發表於2018-11-17

知識點:while迴圈、do-while迴圈、forxufo迴圈、ach迴圈的使用。

1、while迴圈

特點:先判斷條件,條件為真,執行迴圈語句。條件為假,直接結束迴圈語句。

語法:

while(條件表示式)
{
       迴圈語句;//如果條件為真,執行迴圈語句,如果條件為假,直接結束整個while語句
}

while迴圈執行流程:

while語句功能

  1. 計算表示式的值,當值為真(非0)時,執行迴圈體語句。
  2. 一旦條件為假,就停止執行迴圈體。
  3. 如果條件在開始時就為假,那麼不執行迴圈體語句直接退出。

while迴圈程式碼練習:迴圈輸出5遍“好好學習,天天向上”

        static void Main(string[] args)
        {
            //第一步宣告一個迴圈變數i,並賦初始值為1
            int i = 1;
            //第二步,使用迴圈,設定迴圈的條件,迴圈多少次?
            while (i <=5)    
            //第三步,設定迴圈語句,每一次重複的內容是什麼
            { 
                Console.WriteLine("這是第{0}遍:好好學習,天天向上",i);
                i++;//記得給迴圈變數進行變化,否則可能進入死迴圈
            }
            Console.ReadLine();
        }

迴圈的三要素:

  • 迴圈變數的初始化;
  • 迴圈的條件;
  • 迴圈變數的疊加;

思考兩個問題:

①迴圈變數要發生改變,不然迴圈就失去意義。要麼一次不迴圈,要麼陷入死迴圈。舉例演示:將i=6或註釋掉i++

②迴圈變數發生改變,i++ 和++i的區別

++在前面,就先執行+1,再輸出變數。

++在後面,先輸出變數,再執行+1。

            int num1 = 6, num2 = 6;     //宣告兩個變數,並賦初始值
            Console.WriteLine(num1++);  //輸出6,num1先輸出6,然後再增加1,變成7
            Console.WriteLine(num1);    //輸出7,此時num1已經變成7
            Console.WriteLine(++num2);  //輸出7,num2先增加1,變成7,然後再輸出
            Console.WriteLine(num2);    //輸出7

while迴圈課後練習:①計算1+2+……+100的和  ②計算100以內偶數的和

 

2、do-while迴圈

特點:先執行一次迴圈語句,然後再判斷條件,如果條件為真,那麼繼續執行迴圈語句。如果條件為假,那麼直接結束迴圈語句。

語法:

            do
            {
                迴圈語句;        
            }
            while (條件表示式);

do-while執行流程:

do-While語句功能

至少會執行一次迴圈語句

do-while迴圈程式碼練習:程式設定一個固定數值,提示使用者輸入整數,並判斷大小,直到輸入正確為止。

        static void Main(string[] args)
        {
            /*
             * 輸入數字,判斷數字與指定數字的關係,給出提示
             * 輸入錯誤,則迴圈提示輸入
             * 輸入正確,則結束迴圈
             */
            int a = 123;//宣告一個整型變數a,用以存放指定數值
            int b; //宣告一個整型變數b,用以存放使用者將輸入的數值
            do
            {
                Console.WriteLine("請輸入一個整數:");
                b = int.Parse(Console.ReadLine());
                if (b > a)
                {
                    Console.WriteLine("您輸入的數字太大了");
                }
                else if (b < a)
                {
                    Console.WriteLine("您輸入的數字太小了");
                }
                Console.WriteLine();
            }
            while (!(a == b));//當使用者輸入正確時,條件表示式結果為假,退出do-while迴圈
            Console.WriteLine("輸入正確");
            Console.ReadLine();
            
        }

do-while迴圈程式碼練習:程式指定賬號和密碼,提示使用者輸入賬號密碼,如果輸入錯誤則提示錯誤,讓使用者繼續輸入。直到輸入正確為止。

 

3、for迴圈

和while迴圈一樣,先判斷後執行,這兩種迴圈可以互相代替。

for迴圈語法:

for(表示式1;表示式2;表示式3)
{
     迴圈語句;
}

for迴圈執行流程:

for語句功能

1、表示式1,通常為迴圈變數賦初值;

2、表示式2,即判斷迴圈條件是否為真,若值為真則執行迴圈體一次, 否則跳出迴圈;

3、表示式3,這裡通常寫更新迴圈變數的賦值表示式,然後轉回第2步重複執行;

for迴圈程式碼練習:一隻青蛙一張嘴,兩隻眼睛四條腿,輸出10只青蛙

        static void Main(string[] args)
        {
            //迴圈輸出10只青蛙
            for(int i = 1; i <= 10; i++)
            {
                Console.WriteLine("{0}只青蛙,{0}張嘴,{1}隻眼睛,{2}條腿",i,2*i,4*i);
            }
            Console.ReadLine();
        }

程式碼結果演示:

for迴圈的變體(表示式1、表示式2、表示式3都可以根據需要進行省略,但是三個表示式之間的分號不允許省略),此內容知道即可,建議寫程式碼時要按正規方式寫。

for迴圈程式碼練習:輸出1-5與10的乘積

 

4、foreach迴圈

foreach迴圈是C#中特有的迴圈,它一般用於對陣列、集合中的每個元素進遍歷

foreach語法:

            foreach(資料型別 變數名 in 陣列或集合名)
            {
                迴圈語句;
            }

foreach迴圈程式碼練習:遍歷輸出字串中的每一個字

        static void Main(string[] args)
        {
            //將使用者輸入的話遍歷輸出
            Console.WriteLine("請輸入一句話:");
            string yj = Console.ReadLine();
            foreach(char a in yj)
            {
                Console.WriteLine(a);
            }
            Console.ReadLine();
        }

程式碼結果演示:

 

5、while迴圈、do-while迴圈、for迴圈、foreach迴圈的區別

  • while迴圈和for迴圈,都是先判斷條件,如果條件為真則執行迴圈。如果條件一開始就為假,則一次迴圈都不執行。
  • do-while迴圈,則是先執行一次迴圈語句,再判斷條件。如果條件一開始就位假,那麼至少會執行一次迴圈語句。
  • 三種迴圈,都有可能出現死迴圈,一般情況下,應當避免死迴圈的出現。
  • foreach迴圈,根據陣列或集合中的每個元素來迴圈程式碼塊。
  • for迴圈和foreach迴圈當中定義的初始化變數,只有自己才能用;while和do-while迴圈,初始化變數本來就在外面,所以外面也照樣可以使用。

使用建議:

  1. 絕大多數情況下,while迴圈、do-while迴圈和for迴圈可以來回轉換。
  2. 但是凡是次數確定、範圍確定的情況,儘量使用for迴圈。
  3. 如果不在乎次數,只在乎條件是否成立,那麼多用while迴圈。

 

課後迴圈練習:

1、猜數字遊戲:程式指定一個數字,提示使用者輸入數字,並給出提示,如果錯誤,迴圈提示輸入數字,直到輸入正確為止。

2、智慧機器人:迴圈接收使用者輸入的問題,並給出對應答案,直到程式庫裡缺少正確答案為止。(提示:使用contains()方法,只要使用者輸入字元中包含指定關鍵詞,即觸發答案)

提示:以上兩題用到了迴圈和判斷。先想清楚迴圈條件、迴圈語句。

相關文章