iT邦幫忙

0

JAVA陣列

public class TwoDimArray2 {
public static void main(String[] args) {
int[][] n = {{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}};
int sum = 0;
for (int[]r:n){
for (int i : r){
sum += i;
}
}
System.out.println("n陣列元素總和為"+sum);
}
}
請問:代表甚麼意思呢?

2 個回答

2
marsyang1
iT邦新手 4 級 ‧ 2015-05-20 21:51:50
最佳解答

程式在貼的時候最好用code block括起來比較清楚明瞭一點.

<pre class="c" name="code">
int[][] n = {{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}};

宣告int二維陣列 , 第一層有三格 , 第一格放 0,1,2,3 , 第二格放4,5,6,7 第三格放 8,9,10,11

<pre class="c" name="code">
int sum = 0;
for (int[]r:n){ 
  for (int i : r){
    sum += i;
  }
}

簡單說 , 就是從頭開始加總.
第一圈的for迴圈只處理第一層 , 所以先帶入第一格設定的陣列.
第二圈則看帶入的陣列,作陣列中的int迴圈相加 , 加完了就又跳回第一圈 , 第一圈再帶入第二格、第三格.
所以 sum 66 = 0+1+2+3 + 4+5+6+7 + 8+9+10+11

75105135 iT邦新手 5 級 ‧ 2015-05-20 22:53:41 檢舉
<pre class="c" name="code">for (int[]r:n){   
  for (int i : r){
 //for裡面的int i : r 著裡面的:是代表甚麼意思呢?
marsyang1 iT邦新手 4 級 ‧ 2015-05-21 09:34:36 檢舉


第二層的 r 是從第一層for迴圈迭代出來的int[]

0
qooqoo1127
iT邦新手 3 級 ‧ 2015-05-21 12:12:04

這是 foreach loop

<pre class="c" name="code">for (int i : r){...}

這裡 : 的意思是, 把 r 裡面的每一個給 i.

<pre class="c" name="code">
String[] myWords = {"foo", "qoo","zoo"}  
for (String theWord: myWords ) {  
    print(theWord);  
}  

這意思是, 依序一次一個把 myWords 中的 item ("foo", "qoo","zoo") 傳給 theWord,
這樣你就不必事先知道 myWords 的長度(item counts).

我要發表回答

立即登入回答