Thinkers'Studio
JavaとC言語の自習ツール
配列の要素数を調べるには( Java版 )

 Java で配列要素の数を知りたいときは、配列名.length と書くだけです。 メソッドではないので、後ろに ( ) はつけません。

配列の要素数を調べる構文 】
  配列名.length
 領域割り当て済の次のような配列があるとすると
  int[] score  = { 88, 80, 92, 67, 78 }; 
  double[] weight = new double[3];
 それぞれの配列名length を参照します。
  System.out.println( "scoreの要素数" + score.length );
  System.out.println( "weightの要素数" + weight.length );
 scoreの要素数は 5、weightの要素数は 3 と分かります。
 配列のすべての要素に繰り返し処理をするときは、よく次のように書きます。
  for( int i = 0; i < score.length; i++ )
      System.out.println( score[i] );
 また、多次元配列の各次元の要素数を調べることもできます。
  int[][][] data = new int[4][5][6];
  System.out.println( data.length );       //4
  System.out.println( data[0].length );    //5
  System.out.println( data[0][0].length ); //6

 多次元配列は配列の配列・・・という取り扱いなので、添字を指定し個々の配列の要素数を length で調べます。

(今回のクイズです)
 まず、下のプログラムを見てください。
 2次元配列のすべての要素の値を表示するプログラムですが、2箇所空欄があります。
class LengthTest {
    public static void main( String[] args ) {
        int[][] celldata = { { 10, 11, 12, 13, 14 }
                           , { 20, 21, 22, 23, 24 }
                           , { 30, 31, 32, 33, 34 } };

        for( int row = 0; row <     (A)    ; row++ ) {
            for( int col = 0; col <     (B)    ; col++ ) {
                System.out.println( "["+row+"]["+col+"] = "
                                     + celldata[row][col] );
            }
        }
    }
}
 次のように表示したいのですが、空欄 (A)(B) にはそれぞれ何が入るでしょうか?
  [0][0] = 10
  [0][1] = 11
  [0][2] = 12
  [0][3] = 13
  [0][4] = 14
    :

   (答えは、次回の Java の Tips で ・・・)

前回のクイズの答え: BigDecimal の setScale使用例を下に示します。(前回の問題を見る
import java.math.BigDecimal;
class Myround {
   public static void main( String[] args ) {
      double d = 15.54564;

      BigDecimal b = new BigDecimal( String.valueOf(d) );
      BigDecimal newb = b.setScale( 0, BigDecimal.ROUND_HALF_UP );
      System.out.println( "小数点以下第一位で四捨五入 = " + newb );
   }
}
setScaleの最初の引数は「小数点以下の桁数」です。小数第一位で丸めるので 0、小数第二位なら 1 とします。
二つ目の引数は「丸め動作」を指定するもので、四捨五入の場合は ROUND_HALF_UP を指定します。
なお、類似の機能で Mathクラスに roundメソッドがありますが、引数に最も近い整数を返すもので、負の数のときには四捨五入となりません(-15.5は-16とならず-15になります)。