質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

3743閲覧

親配列と小配列の要素数の表示について解説してくれませんか?

z1167474

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/04/22 15:09

今、javaを勉強していて、
参考書を見ながら勉強しているのですが、
親配列と小配列の要素数を表示するという、ソースコードで

public class Main {
public static void main(String[] args){
int[] [] scores = {{10,20,30},{30,40,50}}; //このような初期化が可能
System.out.println(scores.length); //2を出力
System.out.println(scores[0].length); //3を出力
}
}

という風にあるのですが、
lengthの意味?は、要素数を表示する、だったと思うのですが(違ってたらごめんなさい)
なぜ、この構文で、2と3が出力されるのかが、いまいちわかりません。
なので、解説してくれる方がいましたら、宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

2次元の配列は、Excelの表のようなイメージで考えると判りやすいです。

例の場合は、

10 20 30
30 40 50

と言う並びがイメージできます。

scores.lengthは行数(縦の数)なので、2
scores[0].lengthは1行目の列数(横の数)なので、3 になります。

投稿2016/04/24 08:36

chun

総合スコア324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

lengthは要素数を取得するメソッドであっていますよ。

int[] [] scores = {{10,20,30},{30,40,50}};
この場合は、scores自体に以下の2つの配列が入っています。
0. {10,20,30}
0. {30,40,50}

なので、scores.lengthでscores自体の要素数を取得すると2つとなります。

次に、scores[0].lengthで3が取得される理由です。
まず、scores[0]で取得できるのはscoresの1番目(インデックス番号0)の配列が取得できます。
つまり、{10,20,30}が取得できます。

この配列には、3つの整数が入っているため、3が取得できます。

投稿2016/04/23 11:08

rirazou

総合スコア36

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

scores[0][0]は10というint要素です。
これはscores[0]というint配列の0番目の要素です。

scores[0]は[10, 20, 30]というint値を要素に持つint配列です。
これはscoresという配列の0番目の要素と考えられます。
(scores[0].lengthはscores[0]が持つint要素の数=3)

ということは、scoresは[(int配列), (int配列)]というint配列を要素に持つ配列と考えられます。
なので、scores.lengthはscoresが持つint配列の要素数=2を返します。

投稿2016/04/22 15:14

編集2016/04/24 09:34
swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問