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

  • 倉頡編程快速上手
  • 劉玥 張榮超
  • 1539字
  • 2024-09-05 17:00:22

2.2.2 對可變變量進行賦值

使用關鍵字let聲明的變量是不可變變量,使用關鍵字var聲明的變量是可變變量。

不可變變量指的是初始化后數據不可以發生改變的變量。對于不可變變量,只可以執行一次“存”操作。可變變量指的是初始化數據可以發生改變的變量。對于可變變量,可以執行多次“存”操作。

對于可變變量,可以隨時通過賦值表達式來給變量存入新的變量值。在存入新值之后,舊值就會被新值替換。賦值表達式的語法格式如下:

變量名 = 新值

其中,“=”是賦值操作符,其作用是將“=”右邊的新值賦給左邊的變量。賦值完成后,變量值就被新值替換了。

1.賦值表達式中的新值是字面量

對代碼清單2-1進行修改,將可變變量info的值修改為另一個字符串類型的字面量,如代碼清單2-3所示。

代碼清單2-3 hello_cangjie.cj

01   main() {
02       var info: String = "你好,倉頡!"
03       println(info)  // 輸出變量info并換行
04   
05       info = "使用賦值表達式對可變變量進行賦值"  // 修改info
06       println(info)  // 再次輸出info
07   }

編譯并執行程序,輸出結果為:

你好,倉頡!
使用賦值表達式對可變變量進行賦值

如果對已經完成初始化的不可變變量進行賦值,將會引發編譯錯誤。例如,在以上示例程序中,如果在聲明info時使用的是關鍵字let,那么在之后的代碼中就不能再對info進行賦值操作。

2.賦值表達式中的新值是表達式

在倉頡中,表達式是一個寬泛的概念,只要能夠返回一個值,就可以將其稱為表達式(expression)。簡單的表達式是由操作數操作符構成的,其中操作符是可選的。操作數是參與操作的數據,例如字面量"你好,倉頡!"、變量info。操作符是一種特殊的符號,通過操作符可以對相應數據類型的操作數進行各種操作,例如“+”“()”。

以下是一些簡單表達式的示例:

"你好,倉頡!"      // 1個字符串類型字面量(操作數)構成的表達式
3                 // 1個整數類型字面量(操作數)構成的表達式
x + 1             // 由2個操作數“x”“1”和1個操作符“+”構成的表達式
println(info)     // 操作符“()”表示函數調用
info = "笑口常開"  // 賦值表達式

賦值表達式中的新值可以是各種表達式,示例代碼如代碼清單2-4所示。

代碼清單2-4 write_variables.cj

01   main() {
02       var x = 1
03       println(x)
04   
05       x = x + 1  // 新值是表達式x + 1
06       println(x)
07   
08       x = x * 3  // 新值是表達式x * 3
09       println(x)
10   }

編譯并執行程序,輸出結果為:

1
2
6

在示例程序中,首先聲明了一個初始值為1的可變變量x(第2行代碼)。在第5行代碼中,使用以下賦值表達式對x進行賦值:

x = x + 1

在執行該行代碼時,首先會計算出“=”右邊的表達式的值。由于當前x的值為1,因此計算出表達式x + 1的值為2,再將x + 1的值賦給“=”左邊的x,這樣就將x的值由1修改為2。

同理,在第8行代碼中,使用以下賦值表達式再次修改了x的值:

x = x * 3

在執行該行代碼時,同樣先使用當前x的值計算出表達式x * 3的值為6,再將6賦給x。

3.復合賦值表達式

除了可以使用賦值表達式對可變變量進行賦值,還可以使用復合賦值表達式對可變變量進行賦值。將其他二元操作符,如“+”“-”“*”等,與賦值操作符復合在一起,可以得到復合賦值操作符。對代碼清單2-4稍作修改,得到代碼清單2-5。

代碼清單2-5 write_variables.cj

01   main() {
02       var x = 1
03       println(x)
04   
05       x += 1  // 等效于x = x + 1
06       println(x)
07   
08       x *= 3  // 等效于x = x * 3
09       println(x)
10   }

以上示例程序的輸出結果和代碼清單2-4的輸出結果是完全一致的。

在示例程序中,使用以下2個復合賦值表達式對可變變量x進行賦值:

x += 1
x *= 3

提示

一元操作符只需要1個操作數,例如,-3中的負號“-”是一元操作符。二元操作符需要2個操作數,例如5 * 3中的乘號“*”是二元操作符。

練習

繼續修改2.2.1節的練習代碼。

1.使用賦值表達式對表示停車位編號、商鋪地址編號和空調開頭狀態的變量重新賦值。

2.使用賦值表達式對表示童鞋價格的變量重新賦值,使童鞋價格在當前價格的基礎上減少19.8元。

3.使用復合賦值表達式對表示童鞋價格的變量重新賦值,使童鞋價格為當前價格的9折(90%)。

主站蜘蛛池模板: 马边| 彭水| 涿州市| 安义县| 科技| 怀集县| 密山市| 焦作市| 潼关县| 开化县| 砚山县| 盐山县| 甘德县| 台北市| 汉中市| 山阳县| 天镇县| 丰原市| 台北县| 商洛市| 东明县| 莱芜市| 玉环县| 喀喇沁旗| 万全县| 甘德县| 台山市| 揭阳市| 曲阜市| 综艺| 黄大仙区| 胶南市| 农安县| 札达县| 泗水县| 惠水县| 湖州市| 宾川县| 齐河县| 安多县| 乌拉特前旗|