官术网_书友最值得收藏!

第4章 變量與常量

本章視頻教學錄像:23分鐘

通過第3章的學習,我們對C#的數據類型及類型轉換有了簡單的了解。每一門語言都有各自的變量和常量的命名與使用規則,本章主要介紹常量與變量的相關內容。

本章要點(已掌握的在方框中打鉤)

□ 變量

□ 匿名變量

□ 常量

4.1變量

本節視頻教學錄像:6分鐘

變量是編程語言中最基本的元素。變量是一個名稱,表示程序執行時存儲在內存中的數據。當需要訪問存儲在變量中的信息時,只需要使用變量的名稱即可。

4.1.1變量的命名

C#是一種對大小寫敏感的語言,變量命名需要遵循如下規則。

(1) 變量名必須以字母或下畫線開頭,只能由字母(大寫和小寫)、數字和下畫線組成。

(2) 變量名不能包含空格、標點符號、運算符字符。

(3) 變量名不能與C#中的關鍵字、運算符或函數名同名。

(4) 使用多個單詞組合為變量名時,使用駱駝命名法(camelCase),即第1個單詞的首字母小寫,其他單詞的首字母大寫。

注意

C#不能用關鍵字做變量名,但C#允許在關鍵字的前面加上前綴“@”作為變量的名字,如@using是合法的變量名。引入“@”的目的在于與其他語言進行交互時避免沖突。建議盡量不要使用前綴“@”作為變量名的一部分。

下面給出一些合法與不合法的變量名例子。

    2a                 //不合法,以數字開頭
    number.1           //不合法,含有非法字符'.'
    numberOne          //合法
    break              //不合法,break為關鍵字
    mod                //不合法,mod為運算符
    Main               //不合法,Main為函數
    intAge             //合法,使用駱駝命名法

4.1.2變量的聲明和賦值

變量的聲明語法如下。

[訪問修飾符] [變量修飾符] 變量的數據類型 變量名

其中訪問修飾符和變量修飾符可以省略,這將在9.2節中介紹。變量聲明和賦值如下所示。

    01  private  int  x;         //聲明x為整型變量,private可以省略
    02  x=10;                    //變量的賦值,讓變量x的值為10
    03  string  name="John";     //聲明一個字符串變量name,值為John

也可以在聲明變量的同時賦值,如:

    int  x=10;

也可以在一行聲明多個變量,如:

    int x=3,y=8; //不同變量之間用逗號隔開

4.1.3 隱式類型的局部變量

隱式類型的局部變量又叫匿名變量,是C# 3.0版本中引入的一個新用法,使用關鍵字var來聲明。可以用var聲明任何類型的局部變量,它只是負責告訴編譯器,該變量需要根據初始化表達式來推斷變量的類型,而且只能是局部變量。

語法如下。

    var  變量名稱=變量值;

例如,

    01  var i=8;               //定義局部變量i,i作為整型數據被編譯
    02  var s="Hello C#!";     //定義局部變量s,s作為字符串數據被編譯

4.2常量

本節視頻教學錄像:12分鐘

常量就是在程序運行過程中值保持不變的量,即在程序執行期間,常量的值不會發生改變。可以在代碼的任何位置用常量代替實際值。如定義const PI=3.14159265,這里使用PI來代替數值3.14159265。常量聲明時需要包含常量的名稱和常量的值,其格式如下。

    [訪問修飾符號]  const  類型  常量表達式;

其中“訪問修飾符號”可以省略。常量的修飾符可以是new、public、protected、internal、private等。常量的表達式表示常量的名字。如下所示。

    public  const  int  x=3,  y=8;//定義int型常量x和y,其值分別是3和8

可以在一行聲明多個常量。不過如果每行只聲明一個常量,代碼會更具有可讀性。

【范例4-1】 定義常量和變量,熟悉常量、變量的使用。

⑴ 在VisualStudio 2013中新建C#控制臺程序,項目名為“ConsVarDemo”。

⑵ 在Program.cs的Main方法中輸入以下代碼(代碼4-1.txt)。

        01  const  int  months=12;  //定義常量months
        02  const  int  weeks=52;   //定義常量weeks
        03  const  int  days=365;   //定義常量days
        04  //可以使用定義過的常量聲明新的常量
        05  const  double  daysPerWeek=(double)days/(double)weeks;        //定義常量daysPerWeek
    06  const   double  daysPerMonth=(double)days/(double)months;       //定義常量daysPerMonth
    07  string  name="Tom";                               //定義變量name
    08  int  annualSalary=500000;                         //定義變量annualSalary
    09  loat  monthSalary=annualSalary/months;            //定義變量monthSalary
    10  float  weekSalary=annualSalary/weeks;              //定義變量weekSalary
    11  float  daySalary=annualSalary/days;                //定義變量daySalary
    12  Console.WriteLine("常量變量演示結果:");          //輸出常量和變量的值
    13  Console.WriteLine("double型常量daysPerWeek的值是:{0}",daysPerWeek);
    14  Console.WriteLine("double型常量daysPerMonth的值是:{0}",daysPerMonth);
    15  Console.WriteLine("float型變量monthSalary的值是:{0}",monthSalary);
    16  Console.WriteLine("{0}的年薪是:{1}元",name,annualSalary);
    17  Console.WriteLine("{0}的月薪是:{1}元",name,monthSalary);
    18  Console.WriteLine("{0}的周薪是:{1}元",name,weekSalary);
    19  Console.WriteLine("{0}的日薪是:{1}元",name,daySalary);
    20  Console.ReadKey();                                //暫停程序的運行直到輸入任意鍵
    21  Console.ReadLine();

【代碼詳解】

代碼1~3行定義了3個常量;第5~6行,利用聲明過的常量定義兩個新常量;第7~11行聲明了5個3種不同類型的變量;第13~19行,采用Console的WriteLine方法輸出格式字符串來進行信息輸出,其中采用輸出格式字符串的方式在C#中經常使用,這種方式包含兩個參數:格式字符串和變量列表,{0}和{1}作為占位符出現在字符串中,代表后面依次排列的變量的值出現的位置。

【運行結果】

單擊工具欄中的按鈕,即可在控制臺中輸出如下圖所示的結果。

【范例分析】

在這個實例中定義了常量months、weeks和days,使用定義過的常量聲明新的常量daysPerWeek、daysPerMonth,并強制進行了類型轉換,把int轉為double類型;定義了多個變量,并采用格式字符串的形式輸出。在這里需注意,計算monthSalary等變量沒有進行類型轉換,故monthSalary等變量的賦值結果最終是int類型。

【拓展訓練】

把【范例4-1】改成隱式類型的局部變量重新運行。

分別聲明多個常量和多個變量,變量類型根據賦的值自動確定。代碼如下(拓展代碼4-1.txt)。

    01  const  int  months=12;                                         //定義常量
    02  const  int  weeks=52;                                          //定義常量
    03  const  int  days=365;                                          //定義常量
    04  //可以使用定義過的常量聲明新的常量
    05  const  double  daysPerWeek=(double)days/(double)weeks;         //定義常量
    06  const  double  daysPerMonth=(double)days/(double)months;       //定義常量
    07  var  flag=true;                                    //定義var變量,賦值為布爾型數據
    08  var  name="Tom";                                  //定義var變量,賦值為字符串
    09  var  annualSalary=500000;                         //定義var變量,賦值為整型
    10  var  monthSalary=annualSalary/months;             //定義var變量,根據表達式的值確定類型
    11  var  weekSalary=annualSalary/weeks;               //定義var變量,根據表達式的值確定類型
    12  var  daySalary=annualSalary/days;                 //定義var變量,根據表達式的值確定類型
    13  var  x=Math.Exp(2);                               //定義var變量,根據表達式的值確定類型
    14  var  y=name.Length;                               //定義var變量,賦值為整型
    15  Console.WriteLine("double型常量daysPerWeek的值是:{0}",  y);
    16  Console.WriteLine("常量變量演示結果:");          //以下語句用來輸出結果
    17  Console.WriteLine("double型常量daysPerWeek的值是:{0}",  daysPerWeek);
    18  Console.WriteLine("double型常量daysPerMonth的值是:{0}",  daysPerMonth);
    19  Console.WriteLine("匿名變量flag的值是:{0}",  flag);
    20  Console.WriteLine("匿名變量monthSalary的值是:{0}",  monthSalary);
    21  Console.WriteLine("{0}的年薪是:{1}元",  name,  annualSalary);
    22  Console.WriteLine("{0}的月薪是:{1}元",  name,  monthSalary);
    23  Console.WriteLine("{0}的周薪是:{1}元",  name,  weekSalary);
    24  Console.WriteLine("{0}的日薪是:{1}元",  name,  daySalary);
    25  Console.ReadKey();
    26  Console.ReadLine();

技巧

匿名變量聲明的同時必須賦值,聲明一個匿名變量后不能給它賦另一類型的值;匿名變量初始化不能為null(空值),匿名變量僅限于聲明局部變量。

【運行結果】

運行結果如下圖所示。

4.3高手點撥

本節視頻教學錄像:2分鐘

變量和常量有什么區別和聯系,使用常量有什么優點?

常量即程序運行的過程中它的值不發生改變的變量。在聲明和初始化時,在變量的前面加上const關鍵字,把此變量聲明成為常量。只有局部變量、字段才能被聲明為常量。

其特征如下。

常量聲明時必須要初始化,賦值后不能再改變,而且所賦的值在程序編譯的過程中要能用于計算。其次常量一般都是靜態的,但也不用在聲明常量時在其前面加上static。

為了使程序更加通俗易懂、更加方便于修改等,這個時候我們就可以使用常量。用一個簡單易懂的英文字母組合來代替程序中多次出現的數字等,例如,某種商品的價格或單價。這就是使用常量的優點。

變量實際上代表的是數據真實的存儲位置。變量的類型決定了它存儲的數值。必須先給變量聲明類型之后才能賦值。嚴格語法格式有兩種。

變量類型 變量名稱;

變量類型 變量名稱=值;

第一種只聲明了變量的類型,沒有賦值;第二種聲明了類型且賦了值,且賦的值必須與變量的類型一致。也就是說數據要存放在合理的數據類型里面,例如,勺子是用來喝湯的,筷子是用來吃面的。另外一種情形,例如,打完球,喝完了飲料,還是很渴,有水但沒有杯子,怎么辦?可以用飲料的瓶子接水喝。由于飲料和水都是液體,也就是說數據的類型沒變,數據發生變化了,只是給變量重新賦值而已。

4.4實戰練習

一、思考題

C#中變量命名規則有哪些?

二、操作題

1. 創建一個控制臺程序,驗證短整型變量的取值范圍。

2. 創建一個控制臺程序,定義一個常量pi賦值為3.14,輸入半徑,計算圓的周長和面積。

主站蜘蛛池模板: 阜南县| 时尚| 合川市| 蒲江县| 和田县| 金堂县| 韩城市| 密云县| 中宁县| 佛坪县| 丰台区| 高清| 盐源县| 乌恰县| 满洲里市| 岱山县| 遵义市| 平果县| 惠来县| 临沂市| 隆尧县| 南华县| 攀枝花市| 逊克县| 五峰| 南岸区| 五大连池市| 华容县| 青冈县| 德令哈市| 鄱阳县| 西峡县| 高平市| 聂荣县| 昌平区| 临江市| 大关县| 莎车县| 容城县| 二连浩特市| 小金县|