精典示例——while語句練習

劉海燕發表於2012-03-09

精典示例——while語句練習

例1:用while語句計算1到100之間的整數的和

程式碼如下:

namespace While迴圈
{
    class Program
    {   
        static void Main(string[] args)
        {
            // 計算1到100之間的整數的和
            int i=1;
            int sum=0;
            while (i <= 100)
            {
                    sum = sum + i;
                    i++;        
            }
            Console.WriteLine("{0}", sum); 
            Console.ReadKey();     
        }
    }
}

練習:斷點除錯程式

     變數的作用域:(以sum為例:sum的作用域就是sum所在的{}內部,sum宣告之後。)

例2:要求使用者輸入使用者名稱和密碼,只要不是admin、888888就一直提示要求重新輸入。

namespace while練習2
{
    class Program
    {
        static void Main(string[] args)
        {
            //要求使用者輸入使用者名稱和密碼,只要不是admin、888888就一直提示要求重新輸入。
            Console.WriteLine("請輸入使用者名稱");
            string userName=Console.ReadLine();
            Console.WriteLine("請輸入密碼");
            string passWord=Console.ReadLine();
            /*
            while(userName!=admin)//錯誤,不要寫成admin,而是"admin",加上雙引號才是字串,否則認為是變數。
             */
            while(userName!="admin"||passWord!="888888")
            {
                Console.WriteLine("使用者名稱和密碼錯誤,請重新輸入");
                Console.WriteLine("請輸入使用者名稱");
                userName = Console.ReadLine();
                Console.WriteLine("請輸入密碼");
                passWord = Console.ReadLine();
            }
            Console.ReadKey();
        }
    }
}


注意:admin和"admin"看著相似,但是表示不同的意思,admin表示的是變數,加上雙引號表示的是字串。

     888888和"888888"也只是形似而已。

分析:邏輯或操作符"||" :有兩個運算元,用於判斷他們的值是否至少有一個為true。

     使用者名稱和密碼只要有一個不正確(!=),就提示錯誤。

          

問題分析

userName

passWord

result

×

×

×

×

×

×

×

 

 

例3:不斷要求使用者輸入一個數字,然後列印這個數字的二倍,當使用者輸入q的時候,程式退出。

namespace 練習3
{
    class Program
    {
        static void Main(string[] args)
        {

            /*
            //死迴圈
           Console.WriteLine("請輸入一個數字");
           string s = Console.ReadLine();
           while(s!="q")
           {
               int number = Convert.ToInt32(s);
               Console.WriteLine("{0}",number*2); 
           }
            */
            while (true)
            {
                Console.WriteLine("請輸入一個數字");
                string s = Console.ReadLine();
                if (s == "q")
                    return;//執行到return就退出了整個函式(Main),while也就不會再繼續執行下去了。而控制元件臺程式一旦Main退出,程式就會退出了。
                int number = Convert.ToInt32(s);
                Console.WriteLine("{0}",number*2);
            }
            Console.ReadKey();
        }
    }
}

注意:return,退出整個函式(Main),程式退出。

例4:不斷要求使用者輸入一個數字,當使用者輸入end的時候顯示剛才輸入的數字中的最大值。

namespace 練習4
{
    class Program
    {
        static void Main(string[] args)
        {
            //不斷要求使用者輸入一個數字(假定使用者輸入的都是正整數),當使用者輸入end的時候顯示剛才輸入的數字中的最大值。設一個變數int max,初始值為0,使用者每輸入一次就把使用者輸入的和max比較一下,如果輸入的比max大,則讓max等於使用者輸入。
            int max=0;
            while (true)
            {
                Console.WriteLine("請輸入一個數字(結束請輸入end):");
                string s = Console.ReadLine();
                if (s == "end")
                {
                    Console.WriteLine("剛才輸入的最大數是{0}:",max);
                    Console.ReadKey();
                    return;
                }
                int number = Convert.ToInt32(s);
                if (number > max) //新的數和max進行比較,誕生了更大的數,max賦值為更大的這個數number
                {
                    max = number;
                }
            }
        }
    }
}

 

練習4主要是練習斷點除錯

相關文章