# 清單

在前一個例子中，如果我們想要把重複過程中所有的隨機數都記錄下來，該如何做呢？答案是利用清單變數。

清單變數是用來記錄一群相同性質的資料所使用的結構，所有的資料都被以相同的變數名稱存取，但是大家依序排序，所以每一個資料項目都有一個索引值，只要指定要存取的索引值就可以從清單中取出或存入資料項目，甚至是新增或移除項目亦可。

## 在Scratch中建立清單

以下是當你按下「建立清單」時會出現的介面：

![](https://1789170130-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LZJEK4Zm0THA0vYxBYQ%2F-L_8BC8syUSN_joHSduD%2F-L_8CDbp_EySSeXkaahK%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-03-04%20%E4%B8%8B%E5%8D%8810.56.05.png?alt=media\&token=98fd9aed-62b9-425c-af4c-69ab59dd6a8d)

建立完成之後，跟隨著這個numbers清單變數就會出現許多的可操作積木：

![](https://1789170130-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LZJEK4Zm0THA0vYxBYQ%2F-L_8BC8syUSN_joHSduD%2F-L_8CVUe4CAihfe1Xluy%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-03-04%20%E4%B8%8B%E5%8D%8810.57.30.png?alt=media\&token=132cd304-fd11-40e1-a9cd-3adf0cf6e131)

這些積木包括清空清單、傳回清單項目數、刪除清單的提定項目、插入新的項目或替換項目，取出指定的清單項目內容等等。

## 利用清單存放產生出來的隨機數

請參考下面這個程式：

![](https://1789170130-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LZJEK4Zm0THA0vYxBYQ%2F-L_8BC8syUSN_joHSduD%2F-L_8DSzODBlgqIrQE9hU%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202019-03-04%20%E4%B8%8B%E5%8D%8811.01.39.png?alt=media\&token=388e4c2e-c5dd-44a8-a7b3-201e7cec39bb)

標準的使用清單的作法，第一件事就是把清單的內容清空，以避免使用到上一次遺留下來的資料項目。之後，在重複的迴圈中就可以使用添加積木把每一次產生數值存放到清單中成為其中的資料項目。假設我們輸入了10，就可以看到產生出來的清單如下所示：

![](https://1789170130-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LZJEK4Zm0THA0vYxBYQ%2F-L_CDW5Wh0-Ue3PA_VQe%2F-L_CFS2nJn4dfy3TQhje%2F2019-03-05_17-49-01.png?alt=media\&token=59f43e2b-56f9-4bda-a1fa-e7de2466f26f)

請留意舞台的左上角，可以看到輸出的結果。

{% hint style="info" %}
要注意的是，因為是隨機數，所以每個人的執行結果不會一樣，但是可以確定的是，一定是一個長度為10的清單。
{% endhint %}

## 產生有序的隨機數

在前一個程式中，產生隨機數的時候，每一個數字和前後都沒有關係。如果，我們要產生的是有大小順序的數時，要如何實作呢？先來看看產生10個1到999數字的方法：

![](https://1789170130-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LZJEK4Zm0THA0vYxBYQ%2F-L_CDW5Wh0-Ue3PA_VQe%2F-L_CGW_tH8eHFq7tffof%2F2019-03-05_17-53-43.png?alt=media\&token=95420596-98ec-4ab7-a02d-d3943bcf49ac)

如果要逐步產生隨機數的話，可以使用的其中一種方法是，第一個數是隨機數，接下來的數則是隨機的增量，因為每次都是增量，如此就可以讓產生出來的系統是逐步增加的。

{% hint style="warning" %}
以此種方式產生出來的數並不是真正的隨機數，只是一組無法預期內容的數值罷了。
{% endhint %}

為了記錄目前的數值以便於和隨機增量加總而產生下一個數，在此還需要建立一個變數，我們把它命名為current，程式積木如下：

![](https://1789170130-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LZJEK4Zm0THA0vYxBYQ%2F-L_CDW5Wh0-Ue3PA_VQe%2F-L_CI4EF62wucHu0bjS0%2F2019-03-05_18-00-29.png?alt=media\&token=0a5cc351-89d8-47ba-a6b2-d57b3f4750f1)

其中一個執行結果如下所示：

![](https://1789170130-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LZJEK4Zm0THA0vYxBYQ%2F-L_CDW5Wh0-Ue3PA_VQe%2F-L_CIUupV6d93SCM3NVj%2F2019-03-05_18-02-09.png?alt=media\&token=933d0c61-eac0-4665-9420-6bae168ce7b6)

有了清單，就可以透過索引值來存取其中的資料項目以進行相關的應用，請看下一單元的內容說明。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nkust.gitbook.io/scratch-3/qing-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
