2012年10月13日 星期六

有關變數型態,宣告方法以及運算

變數是蝦米東西?簡單的理解,就是一個存放資料的地方,存放的資料可能是分身證字號(A123456789)、年紀(18)、銀行利率(0.01%)等種類繁多,因此變數的型態也有很多,想知道更多,請參考MSDN內建資料型別

接下來就來嘗試宣告變數一下,首先讓我們先建立一個主控台應用程式專案,不知道怎麼建立專案,請參考先前文章。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Variable_and_Operator
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

變數宣告的方法,必須先說明變數型態為何,接著給變數一個名稱,就這麼簡單..^^,讓我們來試著宣告一個【字串】變數看看,修改完程式碼記得重新編譯一下,不知道怎麼重新編譯程式碼,請參考先前文章。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Variable_and_Operator
{
    class Program
    {
        static void Main(string[] args)
        {
            string ID_Number;
        }
    }
}

現在我們已經宣告了一個名為【ID_Number】的【字串】變數,用來儲存身分證字號,要怎麼把資料放進去呢?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Variable_and_Operator
{
    class Program
    {
        static void Main(string[] args)
        {
            string ID_Number;
            ID_Number = "A123456789";
        }
    }
}

當然,除了先宣告變數,再給值之外,你也可以宣告變數的時候給值,通常稱之為變數初始化,下面的程式碼結果跟上面的沒有任何差別。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Variable_and_Operator
{
    class Program
    {
        static void Main(string[] args)
        {
            string ID_Number = "A123456789";
        }
    }
}

接著要怎麼讓程式結果顯示身分證字號?再加入兩行程式碼就可以了,知道是哪兩行嗎?不知道的話,就往下看囉。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Variable_and_Operator
{
    class Program
    {
        static void Main(string[] args)
        {
            string ID_Number;
            ID_Number = "A123456789";
            Console.Write(ID_Number);
            Console.ReadKey();
        }
    }
}

修改完程式碼記得【重新編譯】一下,接著按下【開始偵錯】執行看看結果,是不是跟你想的一樣,不知道如何執行【開始偵錯】,請參考之前文章。

有了變數之後,我們能做什麼呢?接下來要我們嘗試一下變數的操作,首先給大家示範一下字串變數相加,我們來看下面的程式碼。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Variable_and_Operator
{
    class Program
    {
        static void Main(string[] args)
        {
            string ID_Number = "A123456789";
            ID_Number = "A123456789";
            Console.Write(ID_Number);

            string CombineString = "我的身分證字號是:" + "A123456789";
            Console.Write(CombineString);

            Console.ReadKey();
        }
    }
}

在上面的程式碼中,我另外又宣告了一個字串變數【CombineString】,存放兩個字串相加的資料,現在可以【重新編譯】一下程式碼,並執行【開始偵錯】看一下程式結果,應該看到結果出現【A123456789我的身分證字號是:A123456789】。

結果是正確的,不過怎麼會所有字串全部都連在一起?原因是因為當你呼叫【Console.Write()】只負責幫你把你要顯示在【命令提示視窗】全部顯示出來,不會幫你做額外的處理,如果想要得到換行的效果該怎麼做呢?方法有兩種,第一個方法是,在妳要顯示的字串後面加上【\r\n】,這是什麼東西?這是告訴電腦要換行的指令,讓我們來試試看效果。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Variable_and_Operator
{
    class Program
    {
        static void Main(string[] args)
        {
            string ID_Number = "A123456789";
            ID_Number = "A123456789";
            Console.Write(ID_Number + "\r\n");

            string CombineString = "我的身分證字號是:" + "A123456789";
            Console.Write(CombineString + "\r\n");

            Console.ReadKey();
        }
    }
}

修改完程式碼記得【重新編譯】一下,並執行【開始偵錯】,看到效果了嗎,看起來舒服多了。

第二個方法,則是呼叫另外一個顯示的方法【Console.WriteLine()】,讓我們把原本的顯示方法打上註解符號,代表這行程式碼不執行,我們再另外寫上程式碼,呼叫新的顯示方法。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Variable_and_Operator
{
    class Program
    {
        static void Main(string[] args)
        {
            string ID_Number = "A123456789";
            ID_Number = "A123456789";
            //Console.Write(ID_Number + "\r\n");
            Console.WriteLine(ID_Number);

            string CombineString = "我的身分證字號是:" + "A123456789";
            //Console.Write(CombineString + "\r\n");
            Console.WriteLine(CombineString);
            Console.ReadKey();
        }
    }
}

修改完程式碼記得【重新編譯】一下,並執行【開始偵錯】,看到效果了嗎,效果與第一個方法一模一樣,該使用哪一個顯示方法呢?我的答案是看情況,我只能說,【Console.Write()】使用上比較靈活。

讓我們回過頭來多練習一下字串變數的宣告與相加,請看下面的程式碼。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Variable_and_Operator
{
    class Program
    {
        static void Main(string[] args)
        {
            string ID_Number = "A123456789";
            ID_Number = "A123456789";
            Console.Write(ID_Number + "\r\n");

            string CombineString = "我的身分證字號是:" + "A123456789";
            Console.Write(CombineString + "\r\n");

            string Example1 = "查詢聯考榜單,需要你的身分證字號:" + "A123456789";
            Console.Write(Example1 + "\r\n");

            string Example2 = "查詢手機帳單,需要你的身分證字號:" + "A123456789";
            Console.Write(Example2 + "\r\n");

            string Example3 = "申請遊戲帳號,需要你的身分證字號:" + "A123456789";
            Console.Write(Example3 + "\r\n");

            Console.ReadKey();
        }
    }
}

修改完程式碼記得【重新編譯】一下,並執行【開始偵錯】,結果會顯示在畫面上。

接下來我要說的,讓大家體會一下變數最基本的功能,目前程式碼之中,有很多地方都用到【A123456789】這個字串對吧,假設我今天換一個人來操作系統,他的身分證字號是【A987654321】呢要怎辦?是不是每個程式碼有用到【A123456789】都要改成【A987654321】對吧,當程式碼很多的時候很容易發生問題,怎麼解決?請往下 看。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Variable_and_Operator
{
    class Program
    {
        static void Main(string[] args)
        {
            string ID_Number = "A123456789";
            ID_Number = "A123456789";
            Console.Write(ID_Number + "\r\n");

            string CombineString = "我的身分證字號是:" + ID_Number;
            Console.Write(CombineString + "\r\n");

            string Example1 = "查詢聯考榜單,需要你的身分證字號:" + ID_Number;
            Console.Write(Example1 + "\r\n");

            string Example2 = "查詢手機帳單,需要你的身分證字號:" + ID_Number;
            Console.Write(Example2 + "\r\n");

            string Example3 = "申請遊戲帳號,需要你的身分證字號:" + ID_Number;
            Console.Write(Example3 + "\r\n");

            Console.ReadKey();
        }
    }
}

大家有發現程式碼有什麼不一樣嗎?對,我把【A123456789】這個字串,換成我們一開始就宣告的字串變數【ID_Number】,現在【重新編譯】一下,並執行【開始偵錯】來看一下結果,咦,程式結果跟上面的一模一樣,換成這樣寫的好處是,如果身分證字號需要修改,就只需要修改變數【ID_Number】的內容就好了,其餘的地方都不需要更動,感受到變數的好處了嗎?

在寫程式的過程中,真的要修改程式碼也是盡可能的減少變動的部分,因為變動程式碼代表著有可能會影響到其他的程式碼,怎麼說?這牽扯到@#$%^.......這可是個大主題,小弟我涉世未深且程度不足,留給大家以後慢慢體會了。

今天我只示範了字串變數的宣告,賦值以及相加的操作,大家可以多試試不同種類的變數宣告以及操作,這裡小弟要提醒各位的是,不見得每一種變數類型都可以拿來做【+、-、X、/、%】的操作,有問題歡迎大家來這裡討論,今天就到這裡了,改天見。

沒有留言:

張貼留言