9-4 二維陣列
Flash無法直接宣告二維(含)以上陣列,需先宣告一維陣列,再將一維陣列中個別陣列元素宣告為一維陣列,變成二維陣列。
宣告一個3x5二維陣列,陣列名稱為height。
height=Array(3);
for(i=0; i<=2; i++){
height[i]=Array(5);
}
將一維陣列元素再宣告為一維陣列,其方式與前一節語法相同,也可以給予初始值。
將二個人的姓名、性別、身高、體重等4個欄位儲存。
2x4二維陣列,並輸出於文字欄位中。
結果:
影格1程式:
01 02 03 04 05 06 07 08 09 10 11 12 13 |
person=Array(2); for(i=0;i<=1;i++){ person[i]=Array(4); } person[0]=["王淑娟","女",165, 65]; person[1]=["李文彬","男",170, 75]; show_txt.text="姓名 性別 身高 體重"+newline; for(i=0;i<=1;i++){ for(j=0;j<=3;j++){ show_txt.text+=person[i][j]+" "; } show_txt.text+=newline; } |
解說:
行1:宣告person為一維陣列,具有2個元素,person[0]與person[1]。
行2∼4:將person[0]與person[1]宣告為一維陣列,具有4個元素,分別為person[0][0],person[0][1],person[0][2],person[0][3]與person[1][0],person[1][1],person[1][2],person[1][3]。
如下圖所示
Person[0][0] |
Person[0][1] |
Person[0][2] |
Person[0][3] |
Person[1][0] |
Person[1][1] |
Person[1][2] |
Person[1][3] |
Person
Person[0]
Person[1]
行5:設定person[0]的4個元素初始值,也就是王淑娟的個人資料。
person[0][0] person[0][1] person[0][2] person[0][3]
王淑娟 |
女 |
165 |
65 |
Person[0]
行6:設定person[1]的4個元素初始值,也就是李文彬的個人資料。
person[1][0] person[1][1] person[1][2] person[1][3]
李文彬 |
男 |
170 |
75 |
Person[1]
行7:輸出個人資料欄位的名稱。
行8∼13:輸出2個人的所有資料。
行9∼11:輸出每一個人的4個欄位資料,兩個資料之間有空白。
行12:每一個人資料都在同一行,不同人的資料在不同行。
計算小明與小文二個人的國文、英文、數學三科的平均分數,平均分數採取四捨五入。
結果:
影格1程式:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 |
name=["小明","小文"]; ave=[0,0]; score=Array(2); score[0]=[91,92,92]; score[1]=[80,81,80]; for(i=0;i<=1;i++){ for(j=0;j<=2;j++){ ave[i]+=score[i][j]; } ave[i]=Math.round(ave[i]/3); } show_txt.text="姓名 國文 英文 數學 平均 "+newline; for(i=0;i<=1;i++){ show_txt.text+=name[i]+" "; for(j=0;j<=2;j++){ show_txt.text+=score[i][j]+" "; } show_txt.text+=ave[i]+"
"; show_txt.text+=newline; } |
解說:
行1:name為一維陣列存二個人姓名。
行2:ave為一維陣列存二個人的平均分數,剛開始假設為0分。
行3∼5:存小明、小文二個人的三科成績。score為2x3的二維陣列。
行6∼11:分別計算兩個人的三科平均分數。
行7∼9:將三科成績和存於ave中,
小明成績
ave[0] = score[0][0] + score[0][1] +
score[0][2]
國文成績 +英文成績 + 數學成績
行10:計算個人平均分數,採取四捨五入,為了節省記憶體,總分與平均分數用相同陣列,為避免混淆也可以用不同陣列名稱,只是需另外宣告總分的陣列
tot=Array(2);
tot=[0,0];
行8改成 tot[i]+=score[i][i];
行10改成 ave[i]=Math.round(tot[i]/3);
行12∼20:輸出二個人的姓名、國文、英文、數學,平均等資料。