9-3 一維陣列
一、Array
語法:arrayName=Array();
功能:宣告arrayName為一個空的一維陣列。
語法:arrayName=Array(length);
功能:宣告arrayName為具有length個元素的陣列。
說明:
1. arrayName:陣列的命名與變數命名相同。
2. 第1個陣列元素為arrayName[0],第length個陣列元素為arrayName[length-1]。
3. Flash陣列元素可以隨時增加陣列元素。
語法1:arrayName=[value0, value1, …,valueN]
語法2:arrayName=Array(value0, value1, …,valueN)
功能:宣告arrayName為一維陣列,並給予初值。
說明:
1. arrayName一共有N+1個陣列元素。
2. arrayName[0]=value0, arrayName[N]=valueN。
3. value0, …,valueN可以不同資料型態。
在5個數中,找出最大數。
結果:
【action】圖層:影格1
在本節中,所有輸出都在show_txt動態文字欄位實體上。
影格1程式:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 |
data = Array(); data[0]=2; data[1]=4; data[2]=10; data[3]=6; data[4]=8; num= data.length; show_txt.text="data 個數 = "+num+newline; max_index=0; max_num=data[0]; show_txt.text+=data[0] + " "; for(i=1;i<=num-1;i++){ show_txt.text+=data[i] +
" "; if(data[i] >max_num){ max_index=i; max_num=data[i]; } } show_txt.text+=newline; show_txt.text+="最大數在第"+(max_index+1)+"位置"+newline; show_txt.text+="最大數="+ max_num; |
解說:
行1:宣告data為一維陣列,為一個空的陣列。
行2~6:將5個數放到陣列元素中,因此這個陣列有5個陣列元素如下圖:
data[0] data[1] data[2] data[3] data[4]
2 |
4 |
10 |
6 |
8 |
行7:data. Length傳回data陣列元素的個數。
行8:將data 的5個數輸出於文字欄位(show_txt)中。
行9∼10:假設第一個元素(data[0]索引值0)為最大數。
行11:將第1個陣列元素data[0]顯示於show_txt文字欄位。
行12∼18:處理data陣列第2個陣列元素到第5個陣列元素的資料。
行13:將data[1],…, data[4],四個陣列元素輸出。
行14∼17:將第2∼5個陣列元素值輸出與目前最大數(max_num)比較,若比較大,最大數的內容會更新,索引值(max_index)也會更新。否則最大值與索引值不會改變。
行19:新的資料顯示移到下一行最前面。
行20:輸出最大數在哪一個位置,陣列元素的第1個元素索引值為0,陣列元素的第2個元素索引值為1。
行21:輸出最大數的值。
計算02+12+22+32+42的和。
結果:
影格1程式:
01 02 03 04 05 06 07 08 09 |
data=Array(5); show_txt.text=""; sum=0; for(i=0;i<=4;i++){ data[i]=Math.pow(i,2); sum+=data[i]; show_txt.text+=("data["+i+"]="+data[i]+newline); } show_txt.text+=("sum="+sum); |
解說:
行1:宣告data為具有5個元素的一維陣列,其陣列元素為data[0],data[1],…, data[4]。
行2:清除文字欄位(show_txt)的內容。
行3:sum為5個數的和,剛開始令為0。
行4∼8:處理5個數的產生與累加,產生data[0],…,
data[4] 共5個陣列元素的值。
行5:Math.pow(i,2)為i2 。i=0時,02=0;i=1時,12=1;i=4時,42=16。
行6:將data[0],…, data[4]的值加入到sum變數中。
行7:將data[0],…, data[4]的值輸出於show_txt文字欄位中。
行9:將5個數的和(sum)輸出於show_txt中。
有二個一維陣列,各有5個陣列元素值,將相同索引值的陣列元素相加。
結果:
影格1程式:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 |
data1=[1,3,5,7,9]; data2=[2,4,6,8,10]; num=data1.length; sum=Array(num); for(i=0;i<=num-1;i++){ sum[i]=data1[i]+data2[i]; } show_txt.text="data1 : "; for(i=0;i<=num-1;i++){ show_txt.text+=data1[i]+" "; } show_txt.text+=newline; show_txt.text+="data2 : "; for(i=0;i<=num-1;i++){ show_txt.text+=data2[i]+" "; } show_txt.text+=newline; show_txt.text+="sum : "; for(i=0;i<=num-1;i++){ show_txt.text+=sum[i]+" "; } |
解說:
行1∼2:data1,
data2各為具有5個初始值陣列元素的一維陣列。
行3:傳回data1陣列元素的個數。data1與data2陣列元素的個數相同。
行4:依據data1陣列元素的個數來宣告sum陣列元素的個數。sum也是一維陣列具有5個元素。
行5∼7:將相同索引值的data1與data2陣列元素的值相加,存於sum陣列元素中。
行8∼11:輸出data1的陣列元素值。
行13∼16:輸出data2的陣列元素值。
行18∼21:輸出sum的陣列元素值。