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

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

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

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

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

3回答

1618閲覧

java 配列の要素数をすべて出力させる処理を記述するとエラーが出る

HdNu

総合スコア32

Java

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

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

1クリップ

投稿2020/01/31 05:29

編集2020/01/31 05:36

Javaの戻り値の例題に取り組んでおります。

**実現したいこと
問題文に沿って、出力結果

太郎東京男プログラマー

このように出力したい

**

下記のメソッドを作成してください。

メソッドを作成したら、mainメソッドで呼び出し、戻り値の要素を全て表示してください。その際、0番目の要素は表示しないように処理を実装してください。

getUserProfileメソッド
{"1","太郎","東京","男","プログラマー"}

上記の要素を持つ静的配列変数を宣言してください。

その静的配列変数を戻り値としてください。

コード public class Main { static String[] getUserProfile() { String [] date = {"1","技育太郎","東京","男","プログラマー"}; return date; } public static void main(String[] args) { String [] date; System.out.println(date); } }

ここに言語を入力
**何が起こっているのか
メゾットを作成し、それをmainメゾットで呼び出して戻り値をすべて出力しようと思い、System.out.println(date);と出力するための処理を記述し実行すると下記なエラーが出てしまう

エラー Main.java:11: error: variable date might not have been initialized System.out.println(date); ^ 1 error

****試したこと 現状の認識

変数の初期化がされていないと戻り値の要素を全て表示してください。その際、0番目の要素は表示しないように処理を実装してください。

getUserProfileメソッド
{"1","太郎","東京","男","プログラマー"}

上記の要素を持つ静的配列変数を宣言してください。

その静的配列変数を戻り値としてください。

コード public class Main { static String[] getUserProfile() { String [] date = {"1","太郎","東京","男","プログラマー"}; return date; } public static void main(String[] args) { String [] date; System.out.println(date); } }

ここに言語を入力
**何が起こっているのか
メゾットを作成し、それをmainメゾットで呼び出して戻り値をすべて出力しようと思い、System.out.println(date);と出力するための処理を記述し実行すると下記なエラーが出てしまう

エラー Main.java:11: error: variable date might not have been initialized System.out.println(date); ^ 1 error

****試したこと 現状の認識

変数の初期化がされていないと表示されていることから、dateがおかしいのかどこを直していけばよいのか、エラー文をコピーし,
java エラー文というふうに検索をかけて原因を探っては見たのですがより理解が難しくなってしまいました。

何か原因のヒントになる言葉をいただけると幸いです。

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

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

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

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

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

coco_bauer

2020/01/31 05:37

質問のどの部分が問題文で、どの部分が問題文に含まれているプログラムで、どの部分が質問者が書いたプログラムなのですか?
BluOxy

2020/01/31 05:42

メゾットではなくメソッドですね。
Takumiboo

2020/01/31 05:44

メゾットではなく、メソッドです。 また、もし「データ」を英語で書くならdateではなくdataです。 --- > メゾットを作成し、それをmainメゾットで呼び出して戻り値をすべて出力しようと思い とありますが、どこでmainメソッドを呼び出しているのでしょうか?
LouiS0616

2020/01/31 05:45

次の要素が混じっていて非常に読みづらいです。 ・ HdNuさんのことば ・ 例題の記述 ・ テンプレートの残骸 例題の記述は引用表記して下さい。テンプレートの残骸は消して下さい。これだけでかなり読み易くなる筈です。
HdNu

2020/01/31 05:46

下記のメソッドを作成してください。 メソッドを作成したら、mainメソッドで呼び出し、戻り値の要素を全て表示してください。その際、0番目の要素は表示しないように処理を実装してください。 getUserProfileメソッド {"1","太郎","東京","男","プログラマー"} 上記の要素を持つ静的配列変数を宣言してください。 その静的配列変数を戻り値としてください。 こちらが問題文になります 問題文に含まれている部分といいますかこちらが指定されたメソットですgetUserProfileメソッド
Takumiboo

2020/01/31 05:52

ここに書かずに質問を編集し、その際はマークアップしてください。 というかマークアップしないにしても最低限区切り線くらいは入れられるでしょう…。
guest

回答3

0

getUserProfileメソッドの変数dateと、mainメソッドの変数dateは全くの別物です。
mainメソッドでdateという名前の変数を宣言したところで、それはgetUserProfileメソッドの変数dateは全く関係がありません。
そしてその変数に代入の処理を一切行わないまま使用しているので、そのエラーが出ます。

投稿2020/01/31 06:13

swordone

総合スコア20651

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

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

0

まず、エントリポイント( main関数, mainメソッド etc. ) を持っている言語であれば、エントリポイントが起動します。

その中に書かれている内容が処理されます。

そして今回の場合、

コード public class Main { static String[] getUserProfile() { String [] date = {"1","太郎","東京","男","プログラマー"}; return date; } public static void main(String[] args) { String [] date; System.out.println(date); } }

ですよね。

インデントがないため読みづらいですが、mainメソッド内を見てみると、

  1. String []date;
  2. System.out...

となっています。
どこにもgetUserProfileメソッドが呼ばれていません。仮にコンパイルが通っても、実行結果がおかしいままでしょうね。

getUserProfileメソッドとmainメソッドは別物です。

なので、getUserProfileメソッドとやらを呼び出さないと意味がありません。

そのため、mainメソッド内の2番目の処理 ( System.out... で表示している部分 ) では、まだString[] date には何も入っていないので、今回のようなエラーになります。

よって、

Java

1public class Main { 2static String[] getUserProfile() { 3String [] date = {"1","太郎","東京","男","プログラマー"}; 4 5return date; 6 7} 8public static void main(String[] args) { 9 10String [] date; 11date = getUserProfile(); // <= ここ! 12System.out.println(date); 13 14} 15}

とかみたいに設定するとか。

つまり、「メソッドの使い方がわかっていないことが原因」ですね。

また、メゾッドではなく メゾットでもなく、リゾットでもなく、「メソッド」です。
まあ、言いたいことはわかるのでいいですが。

あと、インデント(段落のようなもの)がないと読みづらいです。
書いている本人なら読めるかもしれませんが、第三者からすれば、ひたすら苦行だったりします。
(特にfor文の中にfor文がさらにあり、そのなかにもfor文があって...みたいな入れ子だったり、数百行もあったり、複数のファイルにまたがっているとか。もう発狂モン。)
インデントは入れるようにしてください。

例:

Java

1public class Main { 2 static String[] getUserProfile() { 3 String [] date = {"1","太郎","東京","男","プログラマー"}; 4 return date; 5 } 6 7 public static void main(String[] args) { 8 String [] date; 9 System.out.println(date); 10 } 11}

インデントの入れ方は好みやその会社のコーディング規約とかによって違いますが、それでもインデントはできる限り入れたほうが読みやすいです。


[追記0]

どうしても納得がいかないのなら、とりあえずmainメソッド内でString[] date のほうにダミーのデータを入れて、チェックしてみてください。(デバッガで)

投稿2020/01/31 07:35

編集2020/01/31 07:37
BeatStar

総合スコア4958

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

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

0

リンク内容
ちなみに並列をPrintしてもアドレス値が出力されるだけです

投稿2020/01/31 05:56

編集2020/01/31 05:57
Nippun

総合スコア1147

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問