---
# System prepended metadata

title: 陣列2

---

# 陣列2
Java的陣列有三種
## 第1種陣列
不是這麼常用，使用機率不到一成
```java=
//建立實體
int[] x=new int[5]; //長度為5，索引值（index）從0開始，數下來為0,1,2,3,4
x[0]=1;
x[1]=2;
x[3]=4; //沒指定的預設為0
for(int i=0;i<xlength;i++){
    ...println(x[i]);//只輸入x只會印出記憶體位置
}
```
```java=+
for(int y:x){
    ...println(y);
}
```
```java=+
int i=0;
while(i<x.length){
    ...println(x[i]);
    i++;
}
```
```java=
do {
    System.out.println(x[v]);
    v++;
}while(v < x.length);
```

## 第2種陣列
使用機率兩成
```java=
int[] x=new int[]{1,2,3,4};//個數=長度
```
補充：物件導向
- 把method打包，再使用

## 第3種陣列
使用率七成
```java=
int[] arr= {1,2,3};
method03(arr);
```
## 使用陣列的原因
- 好控管
    - 程式碼層面
    - 記憶體
        - 陣列銷毀記憶體也會銷毀

## 陣列的應用範例
```java=
int total=0;
int[] arr= {1,2,3,10};
for(int i=0;i<arr.length;i++){
    total+=arr[i];
}
myprint(arr);
```
```java=
public static void main(String[] args) {
    int total = 0;
    int[] arr = { 1, 2, 3, 10 };
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == 3) {
            break;
        } else {
            total += arr[i];
        }

    }
    System.out.println(total);

}
```
- 備註：`break`跟`continue`可以控制迴圈

## 放整數以外的陣列
```java=
char[] arr={'a','b'}; //字元陣列
```
```java=
p... s... void method01(){
    ...}
```
## 二維陣列
```java=
public static void main(String[] args) {
    int[][] arr= {
            {1,2,3},
            {4,5,6},
            {7,8,9}
    };

        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
                System.out.print(arr[i][j]+",");
            }
            System.out.println();
            }
        }
```
陣列的讀取順序是先讀外再讀內

### 回家作業
去除上方程式碼輸出後最後一排的逗號，老師給的提示：
（還有很多種寫法，僅供參考）
```java=
for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
        if(){
        System.out.print(arr[i][j]+",");
        }else{
        System.out.print(arr[i][j]);
        }
    }
    System.out.println();
}
```
- `arr[].length`可以指定特定陣列的長度數值
[我的嘗試](/q7cWoJgCRj6vpbhq3LDWkw)