⑥ Swift 練習:變數var和常數let — ChatGPT

文組班終於展開了基礎程式練習,雖然之前稍微自修了一陣子!但實際操作起來,仍需要花費一些時間。所謂「熟能生巧」,我相信多做練習就能掌握概念!最直接、快速的方法,就是請熟悉的助教ChatGPT幫我出題。:)

題目如下:

1. 聲明一個名為 `myAge` 的變數,並將它賦值為你的年齡。然後,輸出 `myAge` 的值。
2. 聲明一個名為 `pi` 的常數,並將其賦值為 π(大約為 3.14159)。輸出 `pi` 的值。
3. 創建一個名為 `userName` 的變數,並將其賦值為你的名字。使用 `userName` 打印一條問候消息。
4. 聲明兩個變數 `length` 和 `width`,並分別將它們賦值為矩形的長和寬。計算矩形的面積(長 * 寬),並打印出結果。
5. 聲明一個名為 `numberOfDaysInAWeek` 的常數,並將其賦值為 7。使用 `numberOfDaysInAWeek` 打印一條消息,指示一周有多少天。
6. 創建一個名為 `temperatureInCelsius` 的變數,並將其賦值為攝氏溫度。將溫度轉換為華氏度(F = C * 9/5 + 32),並打印出結果。
7. 創建一個名為 `shoppingList` 的變數,並將其賦值為一個字符串數組,表示你需要在雜貨店買的物品。添加一個物品到列表中,並打印出更新後的購物清單。
8. 聲明一個名為 `gravity` 的常數,並將其賦值為地球上的重力常數(大約為 9.81 m/s²)。打印出 `gravity` 的值。
9. 創建一個名為 `currentYear` 的變數,並將其賦值為當前年份。打印一條消息,指示當前年份。
10. 創建一個名為 `favoriteQuote` 的變數,並將其賦值為表示你最喜歡的名言的字符串。打印出這句名言。

實作演練:

  1. 聲明一個名為 `myAge` 的變數,並將它賦值為你的年齡。然後,輸出 `myAge` 的值。(我的答案、ChatGPT 正解)

var myage = 27
print(“我的年紀是\(myage)”歲)

2. 聲明一個名為 `pi` 的常數,並將其賦值為 π(大約為 3.14159)。輸出 `pi` 的值。

let pi = 3.14159
print("π 大約等於\(pi)")

3. 創建一個名為 `userName` 的變數,並將其賦值為你的名字。使用 `userName` 打印一條問候消息。

var username = Candice
print("你好,我的名字叫 \(username)")

4. 聲明兩個變數 `length` 和 `width`,並分別將它們賦值為矩形的長和寬。計算矩形的面積(長 * 寬),並打印出結果。

var length = 10 
var width = 5
var space = length*width // 錯誤:let space = length*width 常數:固定公式
print(space)

錯誤更正:

應該要使用常數let 不是變數var才對!顯然,自己對於var 和 let 觀念不太清楚,因此再次問chatGPT 差別為何。

`var` 和 `let` 是 Swift 中用來聲明變數和常數的關鍵字,它們之間的主要區別在於可變性。

1. **`var`(變數):**
- 使用 `var` 關鍵字聲明的是一個可變的「變數」,其值可以隨時更改。
- 你可以使用 `var` 創建一個變數,並且在程序的運行過程中對其進行修改。

2. **`let`(常數):**
- 使用 `let` 關鍵字聲明的是一個不可變的「常數」,其值在被賦值後就不能再更改。
- 常數一旦被初始化賦值後,其值將保持不變。

總之,主要區別在於使用 `var` 聲明的是一個可變的變數,而使用 `let` 聲明的是一個不可變的常數。
在選擇使用 `var` 還是 `let` 時,你需要考慮是否希望該值在程序的運行過程中能夠更改。

5. 聲明一個名為 `numberOfDaysInAWeek` 的常數,並將其賦值為 7。使用 `numberOfDaysInAWeek` 打印一條消息,指示一周有多少天。

let numberOfDaysInAWeek= 7
print("一週有 \(numberOfDaysInAWeek) 天")

6. 創建一個名為 `temperatureInCelsius` 的變數,並將其賦值為攝氏溫度。將溫度轉換為華氏度(F = C * 9/5 + 32),並打印出結果。

var temperatureInCelsius = 28
let temperatureFahrenheit = (temperatureInCelsius* 9/5) + 32
print(temperatureFahrenheit)
// 或者可以改寫
print("攝氏\(temperatureInCelsius)度等於華氏\(temperatureFahrenheit)度")

7. 創建一個名為 `shoppingList` 的變數,並將其賦值為一個字符串數組,表示你需要在雜貨店買的物品。添加一個物品到列表中,並打印出更新後的購物清單。(這題一開始先參考解答,了解後才繼續作答)

使用 append 方法將一個新的物品 "麵包" 添加到列表中
var shoppingList = ["特斯拉", "保時捷"]
shoppingList.append("法拉利")
print("中樂透後的購車清單\(shoppingList)")

Apple 官方文件解釋:

8. 聲明一個名為 `gravity` 的常數,並將其賦值為地球上的重力常數(大約為 9.81 m/s²)。打印出 `gravity` 的值。

let gravity = 9.81
print("地球上的重力值為\(gravity) m/s²")

9. 創建一個名為 `currentYear` 的變數,並將其賦值為當前年份。打印一條消息,指示當前年份。這一題我完全投降~👻

以下方法:我們可以使用 Date() 函式直接獲取當前日期,然後使用 Calendar 類別提取年份。這樣就不需要額外的計算 — ChatGPT。

let currentYear = Calendar.current.component(.year, from: Date())
print("當前年份是 \(currentYear) 年。")

//主要利用Date()函式

詢問過彼得潘後,建議可以直接賦值2024

let currentYear = 2024
print("今天是\(currentYear)年")

10. 創建一個名為 `favoriteQuote` 的變數,並將其賦值為表示你最喜歡的名言的字符串。打印出這句名言。

var favoriteQuote = "寫程式好好玩"
print("請發自內心說\(favoriteQuote)")

參考:

--

--