忍者ブログ

からすまる日誌 java

基本(6) 2次元配列

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

基本(6) 2次元配列

配列の変数の情報(A)と、
配列内容がはいってる場所(AAA)は別
 
変数には(AAA)の番地の情報が入っている
配列b = 配列a
にすると、bもaも「同じ番地を参照する」ことになる。
配列b[0]に100を代入してしまうと
a[0]も100になる変わった性質がjavaにはある。
 
 
基本データ型(プリミティブ型)p47
参照型(オブジェクト型)
 配列変数
 クラスが多変数(String)

javaは使わなくなった変数は自動的にごみしてくれる。
 

nullについて
 
--->Main158.java
 
package part1;
public class Main158 {
 public static void main(String[] args) {
  // TODO 自動生成されたメソッド・スタブ
  int[] a= {1,2,3};
  a= null;//どこも参照しませんよ
  a[0]=10;
 }
}
 
実行結果--->
 
 Exception in thread "main" java.lang.NullPointerException
 at part1.Main158.main(Main158.java:10)
 
ヌルポインターエクスセプション
はよく見るエラーらしい。
 
アレイインデックスアウトオブなんちゃら(配列の番地外の参照をしようとしている)と二大エラー。
  
nullが代入されると「どこも参照していない」状態になる。nullリセットとかとも言うらしい。
 

二次元配列
1こめが行(行・列だから)
2こめが列
0.0を起点に右下に広がっていくイメージ
行とは横に伸びた同じフロア
列とは下に伸びたいっこ下の階
 
行がふたつ→右に伸びたブロックが2つ→つまり2階建て
列がふたつ→下に伸びたブロックが2つ→つまりワンフロア2部屋
 
2行3列→2階建て3フロア
int[][] scores = new int[2][3]; →2階建て3フロア


--->Main163.java
 
 package part1;
public class Main163 {
 public static void main(String[] args) {
  // TODO 自動生成されたメソッド・スタブ
  int[][] scores = { {10,20,30},
       {30,40,50}
      };
  System.out.println(scores.length);
  System.out.println(scores[0].length);
 }
}
 
--->Main163_2.java
 
package part1;
public class Main163_2 {
 public static void main(String[] args) {
  // TODO 自動生成されたメソッド・スタブ
  int[][] scores =
  { {10,20},
   {30,40,50},
   {60,70,80,90}
  };
  for (int i=0; i<3; i++) {
   for(int j=0; j<2; j++) {
    System.out.println("ただいまiは"+i);
    System.out.println("ただいまjは"+j);
    System.out.println(scores[i][j]);
   }
  }
  //System.out.println(scores.length);
  //System.out.println(scores[0].length);
 }
}
 
--->実行結果
 
ただいまiは0
ただいまjは0
10
ただいまiは0
ただいまjは1
20
ただいまiは1
ただいまjは0
30
ただいまiは1
ただいまjは1
40
ただいまiは2
ただいまjは0
60
ただいまiは2
ただいまjは1
70
 
PR

コメント

ブログ内検索

P R