SlideShare a Scribd company logo
1 of 14
Download to read offline
App Inventor 教學講義
3
吳為勇
  2	
  
Chapter	
  3	
  
For	
  Each(迴圈)	
  
根據指定範圍之整數個數來決定 do 的執行次數,可自由設定每次累加的數字
step。 您可使用該變數名稱來取得它的值。
像是底下的 VB For 迴圈指令
For index As Integer = 1 To 10 step 1
Label.Write(index.ToString & " ")
Next
以上的 VB 指令可以用以下的拼塊來表示
範例:	
  
Step1:
在 Designer 設計師作業需要新增一個 Button 元件。由左側的 Basic 元件
區選擇一個按鈕 Button, 拖拉到 Viewer(開發設計區)中放到上方,在
Components(應用元件區)中選此 Button1,按下下方 Rename 修改此元件名稱
為 btnClick。然後再選擇一個 Label 元件。由左側的 Basic 元件區選擇一個標
籤 Label, 拖拉到 Viewer(開發設計區)中放到最下方並修改此元件名稱為
lblShow。
  3	
  
	
  
圖表	
   1	
  For	
   迴圈範例_設計師作業
Step2:
1. 開啟Blocks拼塊編輯器。點選左側Built in 裡的Screen1下的btnClick,
選擇『When btnClick.Click do』。拖拉到中間的 Viewer 中。
2. 點選 Control 選擇『for each name from 1 ..』的拼塊,拖拉到上一
步驟所選的『When btnClick.Click do』的裡面。將 name 改成 index。
其餘維持原來的樣子。
3. 點選 Screen1 下的 lblShow 選擇『set lblSHOW.Text to』,拖拉到『for
each name from 1 ..』的拼塊裡。
4. 點選 Text 選擇 Join 拖拉到『set lblSHOW.Text to』的框框裡。(將兩
個指定字串合成一個新字串。對於此指令,數字也被視為字串。例如: 用
join 指令來合成 1+1 及 2×3 則回傳 26 (2 和 6 合成)。
5. 再點選 Text 選擇 Join 拖拉到『Join』上面的框框裡。
6. 點選 Text 選擇『””』將內容改成『”n”』拖拉到第一個『join』
的下方框框。
7. 點選 Screen1 下的 lblShow 選擇『lblSHOW.Text』,拖拉到第二個『Join』
的上方框框。
8. 點選 Variables 選擇『get』,下拉其內容為『index』,拖拉到第二個『Join』
的下方框框。
  4	
  
9. 這樣就完成了 Blocks 編輯。完整拼塊編輯如下圖。
	
  
圖表	
   2	
  For	
   迴圈範例拼塊編輯
10. 用模擬器看執行結果如下圖。
	
  
圖表	
   3	
  For	
   迴圈範例執行結果
  5	
  
List 清單指令	
  
App Inventor 中的 list 就是一般程式中的陣列,所以相關操作方法皆與陣列非
常相似。但請注意App Inventor的List編號從 1 開始,陣列編號則從 0 開始。
	
  
圖表	
   4	
  List 指令區
拼塊說明:	
  
create empty list
產生一個空的清單。請點選藍色方
塊來調整要插入的 item數量。
  6	
  
make a list
新增一個清單,並自行指定其元素
(item)。若您未指定任何元素,則
此為一空清單,您可以之後再加入
元素。請點選藍色方塊來調整要插
入的 item數量。
add items to list
將指定內容item接在指定清單的
後面。本指令與 append to list指
令的差別在於 append to list指令
是將兩個清單組起來,而 add
items to list指令是將要新增的內
容當作個別參數來操作。請點選藍
色方塊來調整要插入的 item數
量。
is in list?
若指定內容thing存在於清單中回
傳true,反之回傳false。注意:若
一清單中含有子清單,則子清單的
元素不包含在原清單中。例如清單
(1 2 (3 4))的元素為1、 2以及子清
單(3 4);單獨3或4並非這個list的
元素。
length of list
回傳清單的長度,也就是元素數
目。
is list empty?
如果清單為空,回傳true;反之回
傳false。
  7	
  
index in list
指定項目於清單中的位置編號。
pick random item
從清單中隨機取得任一項目。
select list item
取得清單list的指定位置index元素
內容,第一個清單元素位置為1。
insert list item
將指定內容item插入清單的指定
位置。
replace list item
將清單的指定位置元素以新的內
容replacement取代。
remove list item
從清單中刪除指定位置的元素。
append to list
將第一個清單list1與第二個清單
list2組成一個新的清單。
copy list
複製清單,如果清單包含子清單也
會一併複製。
is a list?
如果指定內容格式為清單,回傳
true;反之回傳false。
list to csv row
將清單轉換為CSV表格中的列
row,並以CSV
  8	
  
(comma-separated value)格式
回傳。Row中的每一個項目就是一
個欄位(field)。回傳的文件結尾
不會包含換行符號。
list to csv table
將清單以列優先的方式轉換為CSV
表格,並以CSV格式回傳。回傳清
單中的項目是另一個清單,代表
CSV表格中的列,每列中的項目則
是該列的欄位。列中的項目是以逗
號分隔,列彼此之間則是以CRLF
(rn)符號分隔。
list from csv row
將CSV文件中的列解析並回傳一個
清單,清單內容就是該列的各個欄
位。不同列將以n或 CRLF (rn)
符號來區隔。如果列中的文字是以
新的一列或是CRLF符號結束,這樣
的語法是允許的。
list from csv table
將CSV表格解析並回傳一個清單,
清單內容代表不同的列(再包含不
同的欄位)。不同列將以n或 CRLF
(rn)符號來區隔。
lookup in pairs (請參閱右圖)
在一個以清單來呈現的類字典架
構中來找尋資料。這指令需要三個
輸入:key,一個清單 pairs 以及
結果 notFound。在此的 pairs 需
為內容為一對對的清單,也就是該
清單的內容實際上是另一個兩元
素的清單。
  9	
  
本指令會先尋找清單中的第一
對,其第一個元素就是 key,並回
傳第二個元素。例如,清單 ((a
apple) (d dragon) (b boxcar)
(cat 100))中,如果尋找 'b' 就會回
傳 'boxcar'。
如果清單中沒有這樣的一對,本指
令會回傳 "notFound" 代表沒有
找到。如果 pairs 並非一對對的清
單,則本操作會產生錯誤。
	
  
	
   	
  
  10	
  
範例:	
  
大樂透選號	
  
從1~49號隨機產生出不重複的6個號碼。
使用元件: Button(按鈕), Label(標籤).
Step1:
開啟一個新的名為 Lotto 之 Project 用設計師設計放入一個 btnClick 與一個
lblNumbers 兩個元件。存檔後開啟 Blocks(拼塊設計師)。
	
  
圖表	
   5	
   樂透選號畫面設計
Step2:
1. 開啟拼塊編輯器,先點選左側 Built in 裡的 Variables 選擇新增一個全
域變數『initialize global name to』拉到中間的 Viewer。並將 name
改成 lotto。
2. 點選左側 List 指令選擇『make a list 』,拖拉到『initialize global lotto
to』右邊的框框內。
3. 點選左側 Built in 裡的 Variables 選擇新增一個全域變數『initialize
global name to』拉到中間的 Viewer。並將 name 改成 run。
4. 點選左側 Built in 裡的 Logic 選擇『true』拖拉到『initialize global run
  11	
  
to』的右側框框中。
5. 點選左側 Built in 裡的 Variables 選擇新增一個全域變數『initialize
global name to』拉到中間的 Viewer。並將 name 改成 n。
6. 點選左側 Built in 裡的 Math 選擇『0』。並拖拉到『initialize global n
to』的右側框框中。
7. 點選左側 Built in 裡的 Screen1 的『btnClick』選擇『When
btnClick.Click do』。拖拉到中間的 Viewer 中。
8. 點選左側 Built in 裡的 Variables 選擇『set global lotto to』,拖拉到
『When btnClick.Click do』的框框中。另外點選左側 Built in 裡的 List
選擇『make a List』,將此拼塊放到『set global lotto to』右邊的框框
裡。
9. 點選左側 Built in 裡的 Control 選擇『for each name from do』
拖拉到『set global lotto to』下方。並將此拼塊的原來的『name』改
成『i』。『to』的值改成『6』。
10. 點選左側 Built in 裡的 Variables 選擇『set global run to』,拖拉到『for
each name from do』下方框框中。再點選左側 Built in 裡的 Logic
選擇『true』放到『set global run to』右邊的框框。表示將全域變數
run 設成『true』。
11. 點選左側 Built in 裡的 Control 選擇『while test do』的拼塊放到
『set global run to』之下。再點選左側 Built in 裡的 Variables 選擇
『get global run to』。將此拼塊放到 while test 旁的框框。
12. 在『while test do』拼塊的 do 旁邊的框框裡表示當全域變數『run』
這個變數為 true 時要做的事。點選點選左側 Built in 裡的 Variables
選擇『set global run to』放到 do 旁邊的框框裡。並且將此 run 變數
設為 false。
13. 點選左側 Built in 裡的 Variables 選擇『set global n to』,拖拉到『set
global run to』下方框框中。再點選左側 Built in 裡的 Math 選擇
『random Integer from to 』放到右邊的框框中。然後設定『1』
to 『49』。表示要從 1~49 之間取得亂數。
14. 點選左側 Built in 裡的 Control 選擇『for each name in list do』
放到上一步驟設定之『set global n to』『random Integer from 1 to
  12	
  
49』的下方。更改『name』為『item』。設定此『for each name in list
do』的 List 為全域變數 Lotto。
15. 點選左側 Built in 裡的 Control 選擇『if then』指令拖拉到『for
each name in list do』的框框裡。
16. 點選左側 Built in 裡的 Math 裡的『 = 』放到『if then』的 if 旁
邊的框框。『=』左邊的值設定為全域變數『n』,右邊的值設定為『item』。
17. 點選左側 Built in 裡的 Variables 選擇『set global run to』。將此拼塊
放到『if then』的 then 旁的框框。並設定『set global run to』
為『true』。
18. 點選左側 Built in 裡的 List 選擇『add items to list item』拖拉到
『while test do』的拼塊下方。其中 List 的拼塊設定為全域變數
『lotto』,而 item 則設定為全域變數『n』。
19. 點選左側 Built in 裡的 Screen1 選擇『ListPicker1』,拖拉到『add items
to list item』下方框框中。再點選左側 Built in 裡的 Variable 選擇
全域變數『lotto』拖拉到 to 旁邊的框框。
20. 以上這樣就完成全部的設定了。Blocks 設定完成圖如下:
	
  
圖表	
   6	
   樂透選號 Blocks 設定
	
  
	
  
  13	
  
21. 用模擬器看執行結果如下圖。
圖表	
   7	
   樂透選號執行結果	
  
	
   	
  
  14	
  
參考網站與書籍:	
  
書籍:
1. Android 手機程式超簡單	
   App	
  Inventor	
   入門卷 作者:CAVE 教育團
隊 出版社:馥林文化	
  
2. Google	
  App	
  Inventor 開發手冊:不會寫程式也能設計你的 APP	
   作者:
王培坤	
   出版社:上奇資訊	
  
	
  
網站:
1. http://appinventor.mit.edu	
  

More Related Content

What's hot

系統程式 -- 第 10 章 作業系統
系統程式 -- 第 10 章 作業系統系統程式 -- 第 10 章 作業系統
系統程式 -- 第 10 章 作業系統鍾誠 陳鍾誠
 
I doc packaging and mapping techniques.doc
I doc packaging and mapping techniques.docI doc packaging and mapping techniques.doc
I doc packaging and mapping techniques.docVERUS BRASIL
 
C++ Builder 程式撰寫基礎 / C++ Builder Basic
C++ Builder 程式撰寫基礎 / C++ Builder Basic C++ Builder 程式撰寫基礎 / C++ Builder Basic
C++ Builder 程式撰寫基礎 / C++ Builder Basic YKLee3434
 
진화하는 디자인 시스템(걸음마 편)
진화하는 디자인 시스템(걸음마 편)진화하는 디자인 시스템(걸음마 편)
진화하는 디자인 시스템(걸음마 편)NAVER Engineering
 
StackExchange.redis
StackExchange.redisStackExchange.redis
StackExchange.redisLarry Nung
 
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규ChangKyu Song
 
키보드 키와 기호 이름 알아보기
키보드 키와 기호 이름 알아보기키보드 키와 기호 이름 알아보기
키보드 키와 기호 이름 알아보기Changwon National University
 
Component basedgameenginedesign
Component basedgameenginedesign Component basedgameenginedesign
Component basedgameenginedesign DADA246
 
Salome mecaトレーニング(初級)「応力解析のはじめかた」
Salome mecaトレーニング(初級)「応力解析のはじめかた」Salome mecaトレーニング(初級)「応力解析のはじめかた」
Salome mecaトレーニング(初級)「応力解析のはじめかた」Jun Tatsuno
 
系統程式 -- 第 12 章
系統程式 -- 第 12 章系統程式 -- 第 12 章
系統程式 -- 第 12 章鍾誠 陳鍾誠
 
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인강 민우
 
Odoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new apiOdoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new apiOdoo
 
Salome-Meca応力解析中級教材:大変形弾塑性解析による引張試験の再現
Salome-Meca応力解析中級教材:大変形弾塑性解析による引張試験の再現Salome-Meca応力解析中級教材:大変形弾塑性解析による引張試験の再現
Salome-Meca応力解析中級教材:大変形弾塑性解析による引張試験の再現stebee19
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門minazou67
 
[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법Sehyeon Nam
 
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpNorito Agetsuma
 
슈팅 게임에서 레벨 디자인 하기
슈팅 게임에서 레벨 디자인 하기슈팅 게임에서 레벨 디자인 하기
슈팅 게임에서 레벨 디자인 하기용태 이
 
系統程式 -- 第 1 章 系統軟體
系統程式 -- 第 1 章 系統軟體系統程式 -- 第 1 章 系統軟體
系統程式 -- 第 1 章 系統軟體鍾誠 陳鍾誠
 
iOS Architecture
iOS ArchitectureiOS Architecture
iOS ArchitectureJacky Lian
 

What's hot (20)

系統程式 -- 第 10 章 作業系統
系統程式 -- 第 10 章 作業系統系統程式 -- 第 10 章 作業系統
系統程式 -- 第 10 章 作業系統
 
I doc packaging and mapping techniques.doc
I doc packaging and mapping techniques.docI doc packaging and mapping techniques.doc
I doc packaging and mapping techniques.doc
 
Borland C++Builder 進階課程
Borland C++Builder 進階課程Borland C++Builder 進階課程
Borland C++Builder 進階課程
 
C++ Builder 程式撰寫基礎 / C++ Builder Basic
C++ Builder 程式撰寫基礎 / C++ Builder Basic C++ Builder 程式撰寫基礎 / C++ Builder Basic
C++ Builder 程式撰寫基礎 / C++ Builder Basic
 
진화하는 디자인 시스템(걸음마 편)
진화하는 디자인 시스템(걸음마 편)진화하는 디자인 시스템(걸음마 편)
진화하는 디자인 시스템(걸음마 편)
 
StackExchange.redis
StackExchange.redisStackExchange.redis
StackExchange.redis
 
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
 
키보드 키와 기호 이름 알아보기
키보드 키와 기호 이름 알아보기키보드 키와 기호 이름 알아보기
키보드 키와 기호 이름 알아보기
 
Component basedgameenginedesign
Component basedgameenginedesign Component basedgameenginedesign
Component basedgameenginedesign
 
Salome mecaトレーニング(初級)「応力解析のはじめかた」
Salome mecaトレーニング(初級)「応力解析のはじめかた」Salome mecaトレーニング(初級)「応力解析のはじめかた」
Salome mecaトレーニング(初級)「応力解析のはじめかた」
 
系統程式 -- 第 12 章
系統程式 -- 第 12 章系統程式 -- 第 12 章
系統程式 -- 第 12 章
 
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
 
Odoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new apiOdoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new api
 
Salome-Meca応力解析中級教材:大変形弾塑性解析による引張試験の再現
Salome-Meca応力解析中級教材:大変形弾塑性解析による引張試験の再現Salome-Meca応力解析中級教材:大変形弾塑性解析による引張試験の再現
Salome-Meca応力解析中級教材:大変形弾塑性解析による引張試験の再現
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門
 
[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법
 
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
 
슈팅 게임에서 레벨 디자인 하기
슈팅 게임에서 레벨 디자인 하기슈팅 게임에서 레벨 디자인 하기
슈팅 게임에서 레벨 디자인 하기
 
系統程式 -- 第 1 章 系統軟體
系統程式 -- 第 1 章 系統軟體系統程式 -- 第 1 章 系統軟體
系統程式 -- 第 1 章 系統軟體
 
iOS Architecture
iOS ArchitectureiOS Architecture
iOS Architecture
 

Viewers also liked

App inventor 教學講義 chapter2
App inventor 教學講義 chapter2App inventor 教學講義 chapter2
App inventor 教學講義 chapter2Jerry Wu
 
App inventor 3
App inventor 3App inventor 3
App inventor 3Roy Wang
 
App inventor 4
App inventor 4App inventor 4
App inventor 4Roy Wang
 
Android 程式設計(2)
Android 程式設計(2)Android 程式設計(2)
Android 程式設計(2)Roy Wang
 
Android 程式設計(1)
Android 程式設計(1)Android 程式設計(1)
Android 程式設計(1)Roy Wang
 
App inventor 1
App inventor 1App inventor 1
App inventor 1Roy Wang
 
App inventor 2
App inventor 2App inventor 2
App inventor 2Roy Wang
 

Viewers also liked (7)

App inventor 教學講義 chapter2
App inventor 教學講義 chapter2App inventor 教學講義 chapter2
App inventor 教學講義 chapter2
 
App inventor 3
App inventor 3App inventor 3
App inventor 3
 
App inventor 4
App inventor 4App inventor 4
App inventor 4
 
Android 程式設計(2)
Android 程式設計(2)Android 程式設計(2)
Android 程式設計(2)
 
Android 程式設計(1)
Android 程式設計(1)Android 程式設計(1)
Android 程式設計(1)
 
App inventor 1
App inventor 1App inventor 1
App inventor 1
 
App inventor 2
App inventor 2App inventor 2
App inventor 2
 

App inventor 教學講義 chapter3

  • 2.   2   Chapter  3   For  Each(迴圈)   根據指定範圍之整數個數來決定 do 的執行次數,可自由設定每次累加的數字 step。 您可使用該變數名稱來取得它的值。 像是底下的 VB For 迴圈指令 For index As Integer = 1 To 10 step 1 Label.Write(index.ToString & " ") Next 以上的 VB 指令可以用以下的拼塊來表示 範例:   Step1: 在 Designer 設計師作業需要新增一個 Button 元件。由左側的 Basic 元件 區選擇一個按鈕 Button, 拖拉到 Viewer(開發設計區)中放到上方,在 Components(應用元件區)中選此 Button1,按下下方 Rename 修改此元件名稱 為 btnClick。然後再選擇一個 Label 元件。由左側的 Basic 元件區選擇一個標 籤 Label, 拖拉到 Viewer(開發設計區)中放到最下方並修改此元件名稱為 lblShow。
  • 3.   3     圖表   1  For   迴圈範例_設計師作業 Step2: 1. 開啟Blocks拼塊編輯器。點選左側Built in 裡的Screen1下的btnClick, 選擇『When btnClick.Click do』。拖拉到中間的 Viewer 中。 2. 點選 Control 選擇『for each name from 1 ..』的拼塊,拖拉到上一 步驟所選的『When btnClick.Click do』的裡面。將 name 改成 index。 其餘維持原來的樣子。 3. 點選 Screen1 下的 lblShow 選擇『set lblSHOW.Text to』,拖拉到『for each name from 1 ..』的拼塊裡。 4. 點選 Text 選擇 Join 拖拉到『set lblSHOW.Text to』的框框裡。(將兩 個指定字串合成一個新字串。對於此指令,數字也被視為字串。例如: 用 join 指令來合成 1+1 及 2×3 則回傳 26 (2 和 6 合成)。 5. 再點選 Text 選擇 Join 拖拉到『Join』上面的框框裡。 6. 點選 Text 選擇『””』將內容改成『”n”』拖拉到第一個『join』 的下方框框。 7. 點選 Screen1 下的 lblShow 選擇『lblSHOW.Text』,拖拉到第二個『Join』 的上方框框。 8. 點選 Variables 選擇『get』,下拉其內容為『index』,拖拉到第二個『Join』 的下方框框。
  • 4.   4   9. 這樣就完成了 Blocks 編輯。完整拼塊編輯如下圖。   圖表   2  For   迴圈範例拼塊編輯 10. 用模擬器看執行結果如下圖。   圖表   3  For   迴圈範例執行結果
  • 5.   5   List 清單指令   App Inventor 中的 list 就是一般程式中的陣列,所以相關操作方法皆與陣列非 常相似。但請注意App Inventor的List編號從 1 開始,陣列編號則從 0 開始。   圖表   4  List 指令區 拼塊說明:   create empty list 產生一個空的清單。請點選藍色方 塊來調整要插入的 item數量。
  • 6.   6   make a list 新增一個清單,並自行指定其元素 (item)。若您未指定任何元素,則 此為一空清單,您可以之後再加入 元素。請點選藍色方塊來調整要插 入的 item數量。 add items to list 將指定內容item接在指定清單的 後面。本指令與 append to list指 令的差別在於 append to list指令 是將兩個清單組起來,而 add items to list指令是將要新增的內 容當作個別參數來操作。請點選藍 色方塊來調整要插入的 item數 量。 is in list? 若指定內容thing存在於清單中回 傳true,反之回傳false。注意:若 一清單中含有子清單,則子清單的 元素不包含在原清單中。例如清單 (1 2 (3 4))的元素為1、 2以及子清 單(3 4);單獨3或4並非這個list的 元素。 length of list 回傳清單的長度,也就是元素數 目。 is list empty? 如果清單為空,回傳true;反之回 傳false。
  • 7.   7   index in list 指定項目於清單中的位置編號。 pick random item 從清單中隨機取得任一項目。 select list item 取得清單list的指定位置index元素 內容,第一個清單元素位置為1。 insert list item 將指定內容item插入清單的指定 位置。 replace list item 將清單的指定位置元素以新的內 容replacement取代。 remove list item 從清單中刪除指定位置的元素。 append to list 將第一個清單list1與第二個清單 list2組成一個新的清單。 copy list 複製清單,如果清單包含子清單也 會一併複製。 is a list? 如果指定內容格式為清單,回傳 true;反之回傳false。 list to csv row 將清單轉換為CSV表格中的列 row,並以CSV
  • 8.   8   (comma-separated value)格式 回傳。Row中的每一個項目就是一 個欄位(field)。回傳的文件結尾 不會包含換行符號。 list to csv table 將清單以列優先的方式轉換為CSV 表格,並以CSV格式回傳。回傳清 單中的項目是另一個清單,代表 CSV表格中的列,每列中的項目則 是該列的欄位。列中的項目是以逗 號分隔,列彼此之間則是以CRLF (rn)符號分隔。 list from csv row 將CSV文件中的列解析並回傳一個 清單,清單內容就是該列的各個欄 位。不同列將以n或 CRLF (rn) 符號來區隔。如果列中的文字是以 新的一列或是CRLF符號結束,這樣 的語法是允許的。 list from csv table 將CSV表格解析並回傳一個清單, 清單內容代表不同的列(再包含不 同的欄位)。不同列將以n或 CRLF (rn)符號來區隔。 lookup in pairs (請參閱右圖) 在一個以清單來呈現的類字典架 構中來找尋資料。這指令需要三個 輸入:key,一個清單 pairs 以及 結果 notFound。在此的 pairs 需 為內容為一對對的清單,也就是該 清單的內容實際上是另一個兩元 素的清單。
  • 9.   9   本指令會先尋找清單中的第一 對,其第一個元素就是 key,並回 傳第二個元素。例如,清單 ((a apple) (d dragon) (b boxcar) (cat 100))中,如果尋找 'b' 就會回 傳 'boxcar'。 如果清單中沒有這樣的一對,本指 令會回傳 "notFound" 代表沒有 找到。如果 pairs 並非一對對的清 單,則本操作會產生錯誤。      
  • 10.   10   範例:   大樂透選號   從1~49號隨機產生出不重複的6個號碼。 使用元件: Button(按鈕), Label(標籤). Step1: 開啟一個新的名為 Lotto 之 Project 用設計師設計放入一個 btnClick 與一個 lblNumbers 兩個元件。存檔後開啟 Blocks(拼塊設計師)。   圖表   5   樂透選號畫面設計 Step2: 1. 開啟拼塊編輯器,先點選左側 Built in 裡的 Variables 選擇新增一個全 域變數『initialize global name to』拉到中間的 Viewer。並將 name 改成 lotto。 2. 點選左側 List 指令選擇『make a list 』,拖拉到『initialize global lotto to』右邊的框框內。 3. 點選左側 Built in 裡的 Variables 選擇新增一個全域變數『initialize global name to』拉到中間的 Viewer。並將 name 改成 run。 4. 點選左側 Built in 裡的 Logic 選擇『true』拖拉到『initialize global run
  • 11.   11   to』的右側框框中。 5. 點選左側 Built in 裡的 Variables 選擇新增一個全域變數『initialize global name to』拉到中間的 Viewer。並將 name 改成 n。 6. 點選左側 Built in 裡的 Math 選擇『0』。並拖拉到『initialize global n to』的右側框框中。 7. 點選左側 Built in 裡的 Screen1 的『btnClick』選擇『When btnClick.Click do』。拖拉到中間的 Viewer 中。 8. 點選左側 Built in 裡的 Variables 選擇『set global lotto to』,拖拉到 『When btnClick.Click do』的框框中。另外點選左側 Built in 裡的 List 選擇『make a List』,將此拼塊放到『set global lotto to』右邊的框框 裡。 9. 點選左側 Built in 裡的 Control 選擇『for each name from do』 拖拉到『set global lotto to』下方。並將此拼塊的原來的『name』改 成『i』。『to』的值改成『6』。 10. 點選左側 Built in 裡的 Variables 選擇『set global run to』,拖拉到『for each name from do』下方框框中。再點選左側 Built in 裡的 Logic 選擇『true』放到『set global run to』右邊的框框。表示將全域變數 run 設成『true』。 11. 點選左側 Built in 裡的 Control 選擇『while test do』的拼塊放到 『set global run to』之下。再點選左側 Built in 裡的 Variables 選擇 『get global run to』。將此拼塊放到 while test 旁的框框。 12. 在『while test do』拼塊的 do 旁邊的框框裡表示當全域變數『run』 這個變數為 true 時要做的事。點選點選左側 Built in 裡的 Variables 選擇『set global run to』放到 do 旁邊的框框裡。並且將此 run 變數 設為 false。 13. 點選左側 Built in 裡的 Variables 選擇『set global n to』,拖拉到『set global run to』下方框框中。再點選左側 Built in 裡的 Math 選擇 『random Integer from to 』放到右邊的框框中。然後設定『1』 to 『49』。表示要從 1~49 之間取得亂數。 14. 點選左側 Built in 裡的 Control 選擇『for each name in list do』 放到上一步驟設定之『set global n to』『random Integer from 1 to
  • 12.   12   49』的下方。更改『name』為『item』。設定此『for each name in list do』的 List 為全域變數 Lotto。 15. 點選左側 Built in 裡的 Control 選擇『if then』指令拖拉到『for each name in list do』的框框裡。 16. 點選左側 Built in 裡的 Math 裡的『 = 』放到『if then』的 if 旁 邊的框框。『=』左邊的值設定為全域變數『n』,右邊的值設定為『item』。 17. 點選左側 Built in 裡的 Variables 選擇『set global run to』。將此拼塊 放到『if then』的 then 旁的框框。並設定『set global run to』 為『true』。 18. 點選左側 Built in 裡的 List 選擇『add items to list item』拖拉到 『while test do』的拼塊下方。其中 List 的拼塊設定為全域變數 『lotto』,而 item 則設定為全域變數『n』。 19. 點選左側 Built in 裡的 Screen1 選擇『ListPicker1』,拖拉到『add items to list item』下方框框中。再點選左側 Built in 裡的 Variable 選擇 全域變數『lotto』拖拉到 to 旁邊的框框。 20. 以上這樣就完成全部的設定了。Blocks 設定完成圖如下:   圖表   6   樂透選號 Blocks 設定    
  • 13.   13   21. 用模擬器看執行結果如下圖。 圖表   7   樂透選號執行結果      
  • 14.   14   參考網站與書籍:   書籍: 1. Android 手機程式超簡單   App  Inventor   入門卷 作者:CAVE 教育團 隊 出版社:馥林文化   2. Google  App  Inventor 開發手冊:不會寫程式也能設計你的 APP   作者: 王培坤   出版社:上奇資訊     網站: 1. http://appinventor.mit.edu