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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Java

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

配列

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

Q&A

解決済

2回答

1599閲覧

Java 配列を宣言し要素を戻り値として出力する方法 【戻り値】

nitta_komachi

総合スコア8

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Java

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

配列

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

0グッド

0クリップ

投稿2020/02/19 10:15

前提・実現したいこと

最近Javaを学び始めた初心者です。ご教授お願い致します。

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

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

getUserProfileメソッド
{"1","鈴木一郎","東京","男","医者"}

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

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

Main.java:8: error: cannot find symbol return box; ^ symbol: variable box location: class Main //8行目のシンボルが見つかりません。(return boxに対すること) Main.java:13: error: cannot find symbol String[] box = getUserProfile(data); ^ symbol: variable data location: class Main //13行目のシンボルが見つかりません。(String[] box = getUserProfile(data)に対する事)

該当のソースコード

public class Main { //getUserProfileメソッドの追加 public static String getUserProfile(){ //要素の追加 String[] data={"1","鈴木一郎","東京","男","医者"}; String[] getUserProfile; //戻り値の設定 return box; } //メインメソッドを設定 public static void main(String[] args){ String[] box = getUserProfile(data); //静的配列で宣言した要素dataをboxに代入 //boxに入っている要素数を取り出しそこをループしていく for(int i=0;i<box.length;i++){ //0番目の要素は表示しないように処理 if(i==0){ continue; } //iにあたるgetUserProfileの表示 System.out.print(box[i]); } } }

試したこと

メソッド内にこの分はこう動くというコメントを自分なりにしているので
間違いがあれば教えて頂ければと思います。
エラーコードについてはこういう事を示してるのはわかるのですが原因を考えたのが下記のものです

①returnを消しても、ruturnの後の変数を変えてもエラーが出てしまいました。
②13行目の方は調べた結果シンボルが見つからないということはimportされてない?という事に至りました。
今回は変数に値が入れられてなくScannerやArrayListは必要ないところから行き詰ってしまいました。

出来る限り自分で調べたのですが1時間以上も詰まってしまったので
ご教授をお願い致します。

補足情報(FW/ツールのバージョンなど)

Windows10を使用しております。質問の意味が違いましたら申し訳ございません

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

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

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

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

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

guest

回答2

0

ベストアンサー

8行目のエラーはgetUserProfileメソッド内で宣言していないboxを返そうとしているからです。
配列を作ってる変数名は何であるかを見直す必要があります。
そして13行目は引数を受け取るメソッドに引数を渡す記述ですが、
getUserProfileメソッドは引数を受け取る記述をしていないことから出るエラーです。

後、問題文で要求されていますが、静的配列変数の宣言を忘れています。
静的とはstaticのことですが、static変数はどのブロックで宣言できるのかを調べて実装してみてください。

投稿2020/02/19 10:41

yureighost

総合スコア2183

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

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

nitta_komachi

2020/02/19 16:17

ご回答ありがとうございます!そもそもの配列を理解できておらず、新たに組みなおすことでgetUserProfileメソッド内に静的配列を宣言し、mainメソッドで要素の取得まで至ることにできました。本当にありがとうございました!
guest

0

まず理解しなくてはいけないことは、
変数のスコープ(有効範囲)は、宣言したブロック内である、ということです。
なので、
String[] data と String[] getUserProfile はgetUserProfileメソッド内でのみ使用可能で、
String[] box は mainメソッド内でのみ使用可能です。

そして、Javaのコマンドラインアプリが起動するとき、呼び出されるのはmainメソッドです。
なので、mainメソッドの
String[] box = getUserProfile(data);
が最初に動作します。

それを踏まえて見直してみてください。

投稿2020/02/19 10:26

riko111

総合スコア149

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

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

nitta_komachi

2020/02/19 17:04

ご回答ありがとうございます。そもそものメソッドの使い方が理解できておりませんでした…。 ばらばらに宣言していたり、静的配列を理解できていなかったりだったので改めて見直し、助言を参考に色々調べた結果解凍にたどり着くことが出来ました!ご親切にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問