【基礎級】-[陣列]-一維陣列

更新於 發佈於 閱讀時間約 8 分鐘

在使用陣列時一開始也是需要做宣告的,那麼這次說的內容是一維陣列,因此一維陣列宣告內容包括:資料型態、陣列名稱、以及陣列的大小。那麼我們就來看一下它的語法是如何的:

資料型別[ ] 陣列名稱 =  new 資料型別[陣列大小];
說明:等號左邊是做宣告,而右邊是做建立的動作。


一、初始值設定

那麼初始值要怎麼設定呢?這邊有幾種方法,用例子帶大家來看一看:

1.有給予陣列大小,想逐一給值

陣列名稱[指定的索引值]=內容;

例子:

string[] name = new string[3];
name[0]="湯姆";
name[1]="莎拉";
name[2]="貞珍";
name[3]="奇齊";


2.無給予陣列大小,可一次給足

注意:這邊就要用中括號把內容值包起來,值與值間要用「,」逗號隔開ㄛ!

(1)有做new建立動作

資料型別[ ] 陣列名稱 =  new 資料型別[]{內容值1,內容值2...};

Ex:
string[] name = new string[]{"湯姆" , "莎拉" , "貞珍" ,"奇齊"};

(2)無做nwe建立動作

資料型別[ ] 陣列名稱 = {內容值1,內容值2...};

Ex:
string[] name = {"湯姆" , "莎拉" , "貞珍" ,"奇齊"};

內容值寫到這就表示目前name這個陣列大小有4個,並且在name[0]的值是湯姆,以此類推。使用中括號將內容值括起來,裡面的內容也是有順序的,也是要從[0]開始算起的喔!


二、存取陣列

有了初始值設定,那麼要如何取得裡面的值呢?又或是一開始不知道內容值想要存進陣列中又該要怎麼做呢?

有人說:我知道!就這樣就好啦~(假若資料型態為string)
string A = name[0];
這樣A不就取得name[0]的值了嗎!或是反過來
string name[0]="光光";

沒錯!非常好!但是遇到要取其中100個值呢?取1000個呢?難道要使用這樣方法嗎?這樣豈不費力,並且還讓程式變得很冗長?

有人又說:那就用陣列呀!

是!但是這問題不就又回到原本問題嗎?而且在用陣列,不就又複製新的陣列了對吧~


那麼該怎麼辦?我們有一個很好用的工具,還記得for迴圈嗎?它是這樣用的:(這邊我們運用Visual Studio的label元件)

string[] name = new string[]{"湯姆" , "莎拉" , "貞珍" ,"奇齊"};
label1.Text = ""; //清空文字
for(int i = 0  ;  i < name.Length  ;  i++)
{
  label1.Text += "第" + i + "項的內容值為" + name[i] + "\r\n";
}
這邊應該會需要說明一下,for迴圈這邊應該比較有問題:
(1)label1.Text = "" :這邊.Text是對於label1做修改文字的部分,也可以使用下面這一行方式也可以達到文字清空部分
label1.Text = string.Empty;

(2)name.Length :取得name的陣列大小
(3)+= 的運算 :這個是指將原本的值 與 要給予的值 做串接
(4)字串內容若是直接給予的內容文字的話需要用""來括起來,有變數要加進來,就只需要用 + 來串接即可。

(5)name[i] :i會因為迴圈關係而改變,那麼name的陣列索引值也就會跟著i去做改變,也就可以直接帶出內容值出來。

(6)\r\n  :這個是屬於控制字元部分,也是需要在""中來括起來。
‧ \r 是指將指標回到最開頭
‧ \n是指換行,也可使用Environment.NewLine,不過這個就不用使用""括起來了,用法就會是:
label1.Text+="第"+i+"項的內容值為"+name[i]+Environment.NewLine;


這樣的程式結果就會是:msgValue的值就會等於
第0項的內容值為湯姆
第1項的內容值為莎拉
第2項的內容值為貞珍
第3項的內容值為奇齊


【實例】

我們實際來看一下VC#上執行狀況,先建立新專案
(忘了怎麼建立,可以看【入門級】-Visual Studio介紹)

1.從工具箱選擇Button按鈕、Lable文字區塊,在form1介面上拉出想要的大小以及移動到想要的位置上

raw-image

2.我們就先修改元件的文字,將button1顯示的文字改成「一維陣列」

raw-image

3.將剛剛的button1按鈕快速點兩下,就會進入到button1元件驅動的地方讓我們寫程式,指標就會在這邊停下來(目前驅動它的方法默認為滑鼠左鍵點選一下),將剛剛程式for迴圈那段內容輸入進來

說明:
為什麼文字已修改一維陣列了,程式還顯示button1?這是因為我們修改的是Text顯示的內容,並不是修改元件名稱ㄛ!
想要修改名稱可以到剛剛屬性那邊,滑到最上面有個(Name)就可以去做修改,不過盡量以英文為主
raw-image

4.輸入完後點選上面的開始按鈕,就可以執行程式了(會先檢查程式後無重大錯誤才執行)

raw-image






5.執行結果,點選按鈕後就會將label1這樣的文字做清除後,才會把我們要顯示的資料顯示出來。

raw-image



三、foreach迴圈


咦?怎麼多了一個這樣的迴圈?這是什麼呢?這個是對於陣列或是物件的集合的一個迴圈,當我們不確定繼續執行的條件判斷式,那麼就可以使用foreach迴圈了。怎麼用?看語法:

foreach(資料型別 變數名稱 in 陣列名稱或物件集合)
{
  敘述;
}
注意:當你的資料型別設定時,要跟陣列名稱或物件集合的資料型別一樣才不會出錯。

那我們就用剛剛的例子來舉例:

string[] name = new string[] { "湯姆", "莎拉", "貞珍", "奇齊" };
label2.Text = "";
foreach(string i in name)
{
  label2.Text += i + "\r\n";
}

此時的 i 就不是引述了哦!而是name的依序索引值所帶出來的值,也就是說當第一次進入迴圈name索引值是0,而i得到的結果就會是湯姆。可以直接看程式結果就更清楚明瞭了。

程式結果如下:
湯姆
莎拉
貞珍
奇齊


【實例】

我們實際來看一下VC#上執行狀況

1.再新增一次Button、label兩元件
2.在按鈕快速點兩下進入程式區寫入foreach程式

raw-image

3.點選按鈕後結果

raw-image

這樣大家知道在陣列中使用 for 和 foreach 的差異了嗎?
不熟的話可以多練習幾遍,VC#工具箱裡的元件它屬性也可以自行玩玩看設定看看。

留言
avatar-img
留言分享你的想法!
avatar-img
橙果杏的沙龍
25會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
橙果杏的沙龍的其他內容
2024/07/30
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
Thumbnail
2024/07/30
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
Thumbnail
2024/06/29
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
2024/06/29
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
2024/06/20
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
2024/06/20
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
資料集中除了陣列這個外,還有另一個好幫手就是List,它跟陣列很像,我們直接來看一下怎麼用: 它的語法: 1.給予值 (1)單一新增: (2)陣列式新增: 例子: 2.取值 (1)foreach迴圈方式 (2)單一取值 3.取得List有多少個內容值 4.排序 想要反轉就再使用↓ 5.插入 6.複製
Thumbnail
資料集中除了陣列這個外,還有另一個好幫手就是List,它跟陣列很像,我們直接來看一下怎麼用: 它的語法: 1.給予值 (1)單一新增: (2)陣列式新增: 例子: 2.取值 (1)foreach迴圈方式 (2)單一取值 3.取得List有多少個內容值 4.排序 想要反轉就再使用↓ 5.插入 6.複製
Thumbnail
陣列運用、擷取字串   對於陣列裡的內容值除了把資料存進去外,若想要知道陣列維度、陣列大小、複製陣列的值到另一個陣列中、清除陣列的值等等的相關處理,甚至比較常用到的可能還需要做資料排列、查找資料等等,此時C#有一些屬性方法可以幫助到我們,不用寫複雜的迴圈,來看一看有哪些吧~
Thumbnail
陣列運用、擷取字串   對於陣列裡的內容值除了把資料存進去外,若想要知道陣列維度、陣列大小、複製陣列的值到另一個陣列中、清除陣列的值等等的相關處理,甚至比較常用到的可能還需要做資料排列、查找資料等等,此時C#有一些屬性方法可以幫助到我們,不用寫複雜的迴圈,來看一看有哪些吧~
Thumbnail
上一篇的一維陣列是指一排箱子,二維陣列就會往上疊變成兩排箱子,那麼三維呢?並不是再往上疊三排箱子就是三維而是又多了後面深度,也就是三個維度。用圖示: 這樣有比較懂嗎?!沒關係!之前用箱子,那現在用數學來說明好了, 一維是x軸(長度) 二維是xy軸(長度+高度) 三維是xyz軸(長度+高度+深度) 四
Thumbnail
上一篇的一維陣列是指一排箱子,二維陣列就會往上疊變成兩排箱子,那麼三維呢?並不是再往上疊三排箱子就是三維而是又多了後面深度,也就是三個維度。用圖示: 這樣有比較懂嗎?!沒關係!之前用箱子,那現在用數學來說明好了, 一維是x軸(長度) 二維是xy軸(長度+高度) 三維是xyz軸(長度+高度+深度) 四
Thumbnail
在使用陣列時一開始也是需要做宣告的,那麼這次說的內容是一維陣列,因此一維陣列宣告內容包括:資料型態、陣列名稱、以及陣列的大小。那麼我們就來看一下它的語法是如何的: 說明:等號左邊是做宣告,而右邊是做建立的動作。 一、初始值設定 那麼初始值要怎麼設定呢?這邊有幾種方法,用例子帶大家來看一看: 1.有給
Thumbnail
在使用陣列時一開始也是需要做宣告的,那麼這次說的內容是一維陣列,因此一維陣列宣告內容包括:資料型態、陣列名稱、以及陣列的大小。那麼我們就來看一下它的語法是如何的: 說明:等號左邊是做宣告,而右邊是做建立的動作。 一、初始值設定 那麼初始值要怎麼設定呢?這邊有幾種方法,用例子帶大家來看一看: 1.有給
Thumbnail
  陣列(Array)是什麼?它是一個很好用的東西哦!當我們要處理100個學生的成績的時候,如果沒有陣列的話,那麼我們的變數就要命名100個不同的變數,這樣的程式雖然不是不能執行,想一想,是不是有一點要在命名上會想破頭殼呢?因為要想100個不同的變數麻~   你說:「那就變數後面加入編號就好啦~如
Thumbnail
  陣列(Array)是什麼?它是一個很好用的東西哦!當我們要處理100個學生的成績的時候,如果沒有陣列的話,那麼我們的變數就要命名100個不同的變數,這樣的程式雖然不是不能執行,想一想,是不是有一點要在命名上會想破頭殼呢?因為要想100個不同的變數麻~   你說:「那就變數後面加入編號就好啦~如
Thumbnail
C# 陣列 – (C#教學) – Array為程式設計中最基本元素之一. 陣列就是用一個variable記下多個同類的值(記憶體中的位置), 以供日後所調用. 相關頁面: C# List – 學會List的5種基本應用方法 – 初始化, 加入值, 更新值, 刪除值, foreach迴圈
Thumbnail
C# 陣列 – (C#教學) – Array為程式設計中最基本元素之一. 陣列就是用一個variable記下多個同類的值(記憶體中的位置), 以供日後所調用. 相關頁面: C# List – 學會List的5種基本應用方法 – 初始化, 加入值, 更新值, 刪除值, foreach迴圈
Thumbnail
本篇文章將會講述陣列 (Array) 及 foreach 陳述式,陣列是寫程式中關於大筆資料的儲存方式,而 foreach 是處理大筆資料的處理方式之一。
Thumbnail
本篇文章將會講述陣列 (Array) 及 foreach 陳述式,陣列是寫程式中關於大筆資料的儲存方式,而 foreach 是處理大筆資料的處理方式之一。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News