.Net基礎(chǔ)05

主要內(nèi)容

主要內(nèi)容.png

一個小練習(xí)

不斷要求用戶輸入一個數(shù)字(假定用戶輸入的都是正整數(shù)),當(dāng)用戶輸入end的時候顯示剛才輸入的數(shù)字中的最大值

static void Main(string[] args)
{
    //循環(huán)體:提示用戶輸入一個數(shù)字  接收  轉(zhuǎn)換成int類型  不停的比較大小
    //循環(huán)條件:輸入的不能是end
    string input = "";
    int max = 0;
    while (input != "end")
    {
        Console.WriteLine("請輸入一個數(shù)字,輸入end我們將顯示你輸入的最大值");
        input = Console.ReadLine();//數(shù)字 end  亂七八糟
        if (input != "end")
        {
            try
            {
                int number = Convert.ToInt32(input);
                //讓用戶輸入的每個數(shù)字都跟我假定的最大值比較,只要比我假定的最大值要大,
                //就把當(dāng)前輸入的這個數(shù)字賦值給我的最大值
                if (number > max)
                {
                    max = number;
                }
            }
            catch
            {
                Console.WriteLine("輸入的字符串不能夠轉(zhuǎn)換成數(shù)字,請重新輸入");
            }
        }
        else//==end
        {
            Console.WriteLine("您剛才輸?shù)臄?shù)字中的最大值是{0}",max);
        }
    }
    Console.ReadKey();
}

結(jié)果

程序調(diào)試

  • 為什么需要調(diào)試
    1)、寫完一段程序后,想看一下這段程序的執(zhí)行過程。
    2)、當(dāng)你寫完這段程序后,發(fā)現(xiàn),程序并沒有按照你想象的樣子去執(zhí)行。

  • 調(diào)試方法
    1)、F11逐語句調(diào)試(單步調(diào)試)
    2)、F10逐過程調(diào)試
    3)、斷點調(diào)試

單步調(diào)試.png
監(jiān)視變量.png

這里輸入你要見識的變量名稱


監(jiān)視變量2.png

多次點擊F11 后i 的值已經(jīng)在代碼執(zhí)行過程中發(fā)生了變化


監(jiān)視變量3.png

添加斷點(點擊行號左邊的灰色區(qū)域添加斷點 雙擊可取消斷點)
添加完斷點之后直接點擊執(zhí)行 程序會在執(zhí)行到該行代碼的時候停住
(關(guān)于行號的添加 參考 .Net基礎(chǔ)01

斷點調(diào)試.png

for循環(huán)

語法:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
{
    循環(huán)體;
}

表達(dá)式1 一般為聲明循環(huán)變量,記錄循環(huán)的次數(shù)(int i=0;)
表達(dá)式2 一般為循環(huán)條件(i<10)
表達(dá)式3 一般為改變循環(huán)條件的代碼,使循環(huán)條件終有一天不再成立(i++)。
執(zhí)行過程:程序首先執(zhí)行表達(dá)式1,聲明了一個循環(huán)變量用來記錄循環(huán)的次數(shù),
然后執(zhí)行表達(dá)式2,判斷循環(huán)條件是否成立,如果表達(dá)式2返回的結(jié)果為true,
則執(zhí)行循環(huán)體。當(dāng)執(zhí)行完循環(huán)體后,執(zhí)行表達(dá)式3,然后執(zhí)行表達(dá)式2繼續(xù)判斷循環(huán)條件是否成立,
如果成立則繼續(xù)執(zhí)行循環(huán)體,如果不成立,則跳出for循環(huán)。

static void Main(string[] args)
{
    for (int i = 0; i < 10; i++)
    {
        Console.WriteLine("我吃了{(lán)0}口飯", i);
    }
}
結(jié)果.png
  • 小練習(xí)1

找出100-999間的水仙花數(shù)?
水仙花數(shù)指的就是 這個百位數(shù)字的
百位的立方+十位的立方+個位的立方==當(dāng)前這個百位數(shù)字

static void Main(string[] args)
{
    for (int i = 100; i <= 999; i++)
    {
        //153 
        //百位:153/100
        //十位:153%100/10
        //個位:153%10
        int bai = i / 100;
        int shi = i % 100 / 10;
        int ge = i % 10;
        if (bai * bai * bai + shi * shi * shi + ge * ge * ge == i)
        {
            Console.WriteLine("水仙花數(shù)有{0}", i);
        }
    }
    Console.ReadKey();
}
結(jié)果.png
  • 小練習(xí)2 (for循環(huán)嵌套)
static void Main(string[] args)
{
    //當(dāng)遇到某個事情要做一遍,而另外一個事情要做N遍的時候
    //for循環(huán)的嵌套
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            Console.WriteLine("Hello World i循環(huán)了{(lán)0}次,j循環(huán)了{(lán)1}次",i,j);
        }
    }
    Console.ReadKey();
}
結(jié)果.png

從輸出結(jié)果可以看出for循環(huán)嵌套時在滿足最外層循環(huán)條件后,將執(zhí)行完內(nèi)部for循環(huán),之后再判斷是否滿足外層循環(huán)條件。

int.TryParse

類型轉(zhuǎn)換
之前用的 Convert可以類型轉(zhuǎn)換 Parse 也可以類型轉(zhuǎn)換。
之前用的 Convert實際上也是調(diào)用了Parse,和Convert 一樣Parse 也有int.Parse() double.Parse()等同樣的轉(zhuǎn)換類型。
兩者在轉(zhuǎn)換失敗時都是會拋異常,Parse的效率比Convert要高一丟丟,不過基本可以忽略。

static void Main(string[] args)
{
    int number = 100;
    //參數(shù) 返回值
    bool b = int.TryParse("123abc", out number);
    Console.WriteLine(b);
    Console.WriteLine(number);
    //方法 或者 函數(shù)?
    Console.ReadKey();
}

當(dāng)Parse 在類型轉(zhuǎn)換失敗時,并不會拋異常而是會返回一個 bool值,false 代表轉(zhuǎn)換失敗,true 代表轉(zhuǎn)化成功。

continue

在循環(huán)中表示結(jié)束本次循環(huán)

static void Main(string[] args)
{
    while (true)
    {
        Console.WriteLine("Hello World");
        // break;
        continue;
        Console.WriteLine("Hello World");
        Console.WriteLine("Hello World");
    }
    Console.ReadKey();
}
結(jié)果.png

可以發(fā)現(xiàn),程序一直在執(zhí)行,并沒有停止。

  • 小練習(xí)

用 while continue實現(xiàn)計算1到100(含)之間的除了能被7整除之外所有整數(shù)的和。

static void Main(string[] args)
{
    int sum = 0;
    int i = 1;
    while (i <= 100)
    {
        if (i % 7 == 0)
        {
            i++;
            continue;
        }
        sum += i;
        i++;
    }
    Console.WriteLine(sum);
    Console.ReadKey();
}

三元表達(dá)式

語法:
表達(dá)式1?表達(dá)式2:表達(dá)式3;

表達(dá)式1一般為一個關(guān)系表達(dá)式。
如果表達(dá)式1的值為true,那么表達(dá)式2的值就是整個三元表達(dá)式的值。
如果表達(dá)式1的值為false,那么表達(dá)式3的值就是整個三元表達(dá)式的值。
注意:表達(dá)式2的結(jié)果類型必須跟表達(dá)式3的結(jié)果類型一致,并且也要跟整個三元表達(dá)式的結(jié)果類型一致。

static void Main(string[] args)
{
    //計算兩個數(shù)字的大小 求出最大的
    Console.WriteLine("請輸入第一個數(shù)字");
    int n1 = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("請輸入第二個數(shù)字");
    int n2 = Convert.ToInt32(Console.ReadLine());
    
    // 語法:
    //表達(dá)式1?表達(dá)式2 :表達(dá)式3
    int max = n1 > n2 ? n1 : n2;
    Console.WriteLine(max);

    Console.ReadKey();
}
結(jié)果.png

隨機(jī)數(shù)

1、創(chuàng)建一個對象
2、用對象調(diào)用方法

static void Main(string[] args)
{
    //產(chǎn)生隨機(jī)數(shù)
    //1、創(chuàng)建能夠產(chǎn)生隨機(jī)數(shù)的對象
    //Random r = new Random();
    //while (true)
    //{

    //    //2、讓產(chǎn)生隨機(jī)數(shù)的這個對象調(diào)用方法來產(chǎn)生隨機(jī)數(shù)
    //    int rNumber = r.Next(1, 11);
    //    Console.WriteLine(rNumber);
    //    Console.ReadKey();
    //}

    //輸入名字隨機(jī)顯示這個人上輩是什么樣的人
    //思路:
    //1、創(chuàng)建能夠產(chǎn)生隨機(jī)數(shù)的對象
    //2、產(chǎn)生隨機(jī)數(shù) (1,7)

    Random r = new Random();
    while (true)
    {
        int rNumber = r.Next(1, 7);
        Console.WriteLine("請輸入一個姓名");
        string name = Console.ReadLine();
        switch (rNumber)
        {
            case 1:
                Console.WriteLine("{0}上輩子是養(yǎng)豬的", name);
                break;
            case 2:
                Console.WriteLine("{0}上輩子是流氓的", name);
                break;
            case 3:
                Console.WriteLine("{0}上輩子就是小混混", name);
                break;
            case 4:
                Console.WriteLine("{0}上輩子是大漢奸", name);
                break;
            case 5:
                Console.WriteLine("{0}上輩子是拉皮條的", name);
                break;
            case 6:
                Console.WriteLine("{0}上輩子是救苦救難的活菩薩", name);
                break;
        }
        Console.ReadKey();
    }
結(jié)果.png

往期回顧

圖文無關(guān).png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,216評論 4 61
  • iOS_Cqlee閱讀 613評論 0 6
  • 晚秋的清風(fēng) 吹散了盛夏雨后晴虹的希冀 夜悄無聲息地降臨 湖面斜映著斑斕的霞影 船舷寂寂守候著靜默 泛起粼粼微波如蓮...
    夢書客閱讀 390評論 3 3
  • 昨天晚上重新看了《肖申克的救贖》,依然被男主安迪的強(qiáng)大所震懾。 安迪的強(qiáng)大不在于身體,相反他的身體并不強(qiáng)大,甚至多...
    馬烈視界閱讀 280評論 2 3

友情鏈接更多精彩內(nèi)容