C#基礎入門第五天(流程控制)

一、程序調試
1)、寫完一段程序後,想看一下這段程序的執行過程。
2)、當你寫完這段程序後,發現,程序並沒有按照你想象的樣子去執行。

調試方法:
1)、F11逐語句調試(單步調試)
2)、F10逐過程調試(方法時候開始用)
3)、斷點調試
程序運行到斷點處,就不在往下執行



二、for循環
語法:
for(表達式1;表達式2;表達式3)
{
循環體;
}
表達式1一般爲聲明循環變量,記錄循環的次數(int i=0;)
表達式2一般爲循環條件(i<10)
表達式3一般爲改變循環條件的代碼,使循環條件終有一天不再成立(i++)。
執行過程:程序首先執行表達式1,聲明瞭一個循環變量用來記錄循環的次數,
然後執行表達式2,判斷循環條件是否成立,如果表達式2返回的結果爲true,
則執行循環體。當執行完循環體後,執行表達式3,然後執行表達式2繼續判斷循環條件是否成立,
如果成立則繼續執行循環體,如果不成立,則跳出for循環。











for小練習
//求1-100之間的所有整數和,偶數和,奇數和
int sum = 0;
for (int i = 1; i <= 100; i++)
{
if (i % 2 != 0)
{
sum += i;
}
}
Console.WriteLine(sum);
Console.ReadKey();










                    /找出100-999間的水仙花數
        //水仙花數指的是 這個百位數字
        //百位的立方+十位的立方+個位的立方==當前這個百位數字
        //百位:153/100   十位:153%100/10   個位:153%10
        int bai = 0;
        int shi = 0;
        int ge = 0;

        for (int i = 100; i < 1000; i++)
        {
            bai = i / 100;
            shi = i % 100 / 10;
            ge = i % 10;

            if ((bai * bai * bai) + (shi * shi * shi) + (ge * ge * ge) == i)
            {
                Console.WriteLine(i);
            }
        }
        Console.ReadKey();

                    //乘法口訣表(特別注意console.writeline起到的是j循環換行的作用,j<=i是因爲j循環幾次,式子就打印幾次)
                    for (int i = 1; i <=9; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                Console.Write("{0}*{1}={2}\t", i, j, i * j);
            }
            Console.WriteLine();//換行用的
        }
        Console.ReadKey();

                    //讓用戶輸入一個數,給出加法式子
        Console.WriteLine("請輸入一個數");
        int number = Convert.ToInt32(Console.ReadLine());
        for (int i = 0; i <= number; i++)
        {
            Console.WriteLine("{0}+{1}={2}", i,number-i, number);
        }
        Console.ReadKey();

三、int.TryParse
int.parse、double.parse.............(出錯拋異常)
嘗試着將一個字符串轉換成int類型。
conver調用的就是parse,所以效果是一樣的
//使用convert進行轉換,成就成了,不成拋異常
//int numberOne = Convert.ToInt32("123abc");
//parse也是一樣,區別在於convert調用的是Parse,parse效率更高
//int numberTwo = int.Parse("123abc");






        //Tryparse失敗,不拋異常,性能更高,不成功將變量賦值爲0
        int number = 1;
                       //方法      參數     返回值
        bool b = int.TryParse("123abc", out number);
        Console.WriteLine(b);
        Console.WriteLine(number);
        //稱爲方法或者函數,這個方法就是將字符串轉換爲int類型
        Console.ReadKey();

                    /*
         循壞錄入5個人的年齡並計算平均年齡,如果了錄入的數據出現負數或大於
         100的數,立即停止輸入並報錯。(這題還有反序的做法,很簡單)
         */
        int sum = 0;
        bool c = true;
        for (int i = 1; i <= 5; i++)
        {
            try
            {
                Console.WriteLine("請輸入第{0}個人的年齡", i);
                int age = Convert.ToInt32(Console.ReadLine());
                if (age >= 0 && age <= 100)
                {
                    sum += age;
                }
                else
                {
                    Console.WriteLine("輸入的年齡範圍不對,退出程序!");
                    c = false;
                    break;
                }
            }
            catch
            {
                Console.WriteLine("輸入的內容不能轉換成年齡,退出程序!");
                c = false;
                break;
            }
             }
        if (c)
        {
            Console.WriteLine("5個人的平均年齡是:{0}", sum / 5);
        }
        Console.ReadKey();

        /*
         在while中用break實現要求用戶一直輸入用戶名和密碼,只要不是admin/888888
         就一直提示要求重新輸入,如果正確則提示登錄成功
         */
        string userName = "";
        string userPwd = "";
        while (true)
        {
            Console.WriteLine("請輸入用戶名");
            userName = Console.ReadLine();
            Console.WriteLine("請輸入密碼");
            userPwd = Console.ReadLine();
            if (userName == "admin" && userPwd == "888888")
            {
                Console.WriteLine("登錄成功");
                break;
            }
        }
        Console.ReadKey();

        /*
         1-100之間的整數相加,得到累加值大於20的當前述(比如:1+2+3+4+5+6=21)結果6 (這題開始沒讀懂提議,所以每累加一次都將sum歸零一次,這樣就求得1-100所有20的累加數,如果按照題意,只需要打印6則將sum=0替換爲break;)
         */
        int sum = 0;
        for (int i = 1; i <= 100; i++)
        {
            sum += i;
            if (sum >= 20)
            {
                console.writeline(i);
                sum = 0;
            }
        }
        console.readkey();

四、continue關鍵字和質數
continue:立即結束本次循環,判斷循環條件如果成立,則進入下一次循環,否則退出循環

       //計算1-100之間的數,除了能被7整除的數的和
        int sum = 0;
        int i = 0;
        while (i <= 100)
        {
            if (i % 7 == 0)
            {
                i++;
                continue;
            }
            else
            {
                sum += i;
                i++;
            }
        }
        Console.WriteLine(sum);
        Console.ReadKey();

        //找出100以內的所有素數(這題是初級算法題,bool放第一個for循環裏面,因爲每次都要將bool值重置回來,不然就一直都是false)
        //素數就是質數:只能被1和這個數字本身整除的數字,1不算!
        for (int i = 2; i <= 100; i++)
        {
            bool b = true;
            for (int j = 2; j < i; j++)
            {
                //除盡說明不是質數,沒必要在繼續下去
                if (i % j == 0)
                {
                    b = false;
                    break;
                }
            }
            if (b)
            {
                Console.WriteLine("質數有{0}", i);
            }
        }
        Console.ReadKey();

四、三元表達式
語法:
表達式1?表達式2:表達式3;
表達式1一般爲一個關係表達式。
如果表達式1的值爲true,那麼表達式2的值就是整個三元表達式的值。
如果表達式1的值爲false,那麼表達式3的值就是整個三元表達式的值。
注意:表達式2的結果類型必須跟表達式3的結果類型一致,並且也要跟整個三元表達式的結果類型一致。





  //讓用戶輸入兩個數字比兩個數字的大小
        try
        {
            Console.WriteLine("輸入第一個數字");
            int numberOne = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("輸入第二個數字");
            int numberTwo = Convert.ToInt32(Console.ReadLine());
            int max = numberOne > numberTwo ? numberOne : numberTwo;
            Console.WriteLine(max);
        }
        catch
        {
            Console.WriteLine("輸入的數字不能正確被轉換,退出程序!");
        }
        Console.ReadKey();

        //讓用戶輸入姓名,只要不是老趙,就都返回雜種
        Console.WriteLine("請輸入姓名");
        string name = Console.ReadLine();
        string result = name == "老趙" ? "淫才啊" : "雜種啊";
        Console.WriteLine(result);
        Console.ReadKey();

五、隨機數
//產生隨機數
//1。創建能夠產生隨機數的對象
Random r = new Random();
//2.讓產生隨機數的這個對象調用方法來產生隨機數
int rNumber = r.Next(1, 10);
Console.WriteLine(rNumber);
Console.ReadKey();






                    //輸入名字隨機顯示這個人上輩子是什麼人
        //1.創建能夠產生隨機數的對象
        //2.產生隨機數
        Console.WriteLine("輸入你的姓名");
        string name = Console.ReadLine();
        Random r = new Random();
        int n = r.Next(1, 7);
        switch (n)
        {
            case 1:Console.WriteLine("茅十八");
                break;
            case 2:Console.WriteLine("小桂子");
                break;
            case 3:Console.WriteLine("鰲拜啊");
                break;
            case 4:Console.WriteLine("神龍教主");
                break;
            case 5:Console.WriteLine("吳應熊");
                break;
            case 6:Console.WriteLine("陳近南");
                break;
        }
        Console.ReadKey();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章