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

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

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

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

Q&A

解決済

2回答

2332閲覧

javaの配列?の問題

ka2

総合スコア16

Java

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

0グッド

0クリップ

投稿2018/05/10 10:36

前提・実現したいこと

現在、以下の様な問題を解いているのですが、

[x][y]の値をx*yにしましょう(初期化子を使わず、計算で)。また、全ての値を表示しましょう。
値の代入も表示もfor文を使用しましょう。

太字の部分**「[x][y]の値をx*yにしましょう」**というのがどういう操作をすれば可能なのか不明です。
是非ご回答の方よろしくお願いいたします。

発生している問題・エラーメッセージ

### 該当のソースコード public class Mondai { public static void main(String[] args) { double [][] a ={ {2,3,4,5,6,7}, {2,3,4,5,6,7}, {2,3,4,5,6,7}, {2,3,4,5,6,7}, {2,3,4,5,6,7}, }; for(int x = 0; x < a.length; x++) { for(int y = 0; y < a.length; y++) { System.out.println(a[x][y]); } } } } ##言語 java ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) 言葉足らずで、これだけでは何ともいえない・・・という場合には質問していただけると幸いです。

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

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

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

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

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

guest

回答2

0

すこし違う書き方をしてみました。

java

1public class Mondai { 2 public static void main(String[] args) { 3 int[][] a = { 4 new int[4], 5 new int[4], 6 new int[4] 7 }; 8 9 for (int y = 0; y < a.length; y++) { 10 for (int x = 0; x < a[y].length; x++) { 11 a[y][x] = y * x; 12 } 13 } 14 15 for (int y = 0; y < a.length; y++) { 16 for (int x = 0; x < a[y].length; x++) { 17 System.out.print(" " + a[y][x]); 18 } 19 System.out.println(); 20 } 21 }

実行結果
イメージ説明

投稿2018/05/10 13:05

katoy

総合スコア22324

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

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

0

ベストアンサー

[x][y]の値をxyにしましょう ⇒ **a[x][y]にxyを代入しましょう** ってことです。
ループ内でこの処理をこのまま書けば良いです。

~~唯一不可解なのは、aの初期値を無視して良いのか、というところです。~~コメントで解決


一か所バグを発見したので追記。
a.lengthが6なので、これだとa[5][5]への範囲外アクセスを踏みます。

Java

for(int x = 0; x < a.length; x++) {
for(int y = 0; y < a.length; y++) {
System.out.println(a[x][y]);
}
}

内側のループのカウンタ上限は、a[x].lengthにすると良いでしょう。

コードの書き方について

teratailには、上記のようにコードを見やすく表示する機能があります。
質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
Java

投稿2018/05/10 10:42

編集2018/05/10 11:07
LouiS0616

総合スコア35660

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

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

ka2

2018/05/10 10:55 編集

回答ありがとうございます。以下問題全文です。 「6x5のdoubleの配列を作成し、要素[x][y]の値をx*yにしましょう(初期化子を使わず、計算で)。また、全ての値を表示しましょう。 値の代入も表示もfor文を使用しましょう。」 という内容なのでaの初期値は当方が適当にいれました。 問題の解釈としては間違ってないでしょうか・・・ さらに質問で返して申し訳ないです。
LouiS0616

2018/05/10 10:55

6行5列のdouble型配列を作るならば、double[][] arr = new double[6][5]で大丈夫です。 --- > 問題の解釈としては間違ってないでしょうか・・・ aに適当な値を放り込むのは無駄こそあるものの、間違いとまでは言えないと思いますよ。
ka2

2018/05/10 11:10

初期化子を使わず、というのを変に理解してしまっていました。これでこの問題は解決したと思います。分かりやすく回答して頂きありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問