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

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

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

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

Q&A

解決済

3回答

2041閲覧

引数と戻り値のエラー

ottto

総合スコア1

Java

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

0グッド

0クリップ

投稿2020/04/24 02:48

前提・実現したいこと

javaの引数と戻り値の課題でエラーが出てしまいました。
4つ目に”指定されたIDは見つかりません”と表示したいのですが、
調べてみてもそれらしいのが出ずわかりません。よろしくお願いします。

問題文

変数 int num にシステムから入力値が与えられます。
下記のメソッドを作成してください。
メソッドを作成したら、mainメソッドで呼び出し、戻り値の要素を全て表示してください。その際、0番目の要素は表示しないように処理を実装してください。
また、戻り値がnullだった場合、要素の出力ではなく「指定されたIDは見つかりません」と出力してください。
メソッドの呼び出しの際、実引数は変数 int num を設定してください。
getUserPrfofileメソッド
{"1","技育太郎","東京","男","プログラマー"}
{"2","技育花子","北海道","女","システムエンジニア"}
{"3","技育三郎","大阪","男","Webエンジニア"}
上記の要素を持つ静的配列変数を3つ宣言してください。
数値型引数をString型変数に型変換し、その後、下記の仕様を満たす条件分岐を実装してください。
各配列の0番目の値とString型に変換した引数を比較し、
比較して一致した場合、一致した配列変数を戻り値としてください。
また、どの配列とも一致しなかった場合、nullを戻り値としてください。```

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String text = scan.next(); int num = Integer.parseInt(text); String[] data = getUserProfile(num); if(data == null){ System.out.println("指定されたIDは見つかりません"); } for(int i = 1;i < data.length; i++){ if(i == 0){ continue; } System.out.print(data[i]); } } static String[] getUserProfile(int num){ String[] data1 = {"1","技育太郎","東京","男","プログラマー"}; String[] data2 = {"2","技育花子","北海道","女","システムエンジニア"}; String[] data3 = {"3","技育三郎","大阪","男","Webエンジニア"}; String a = String.valueOf(num); if(data1[0].equals(a)){ return data1; }else if(data2[0].equals(a)){ return data2; }else if(data3[0].equals(a)){ return data3; }else{ return null; } } }### 該当のソースコード

エラーコード

Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:11)

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答3

0

java

1import java.util.Scanner; 2public class Main { 3 public static void main(String[] args) { 4 Scanner scan = new Scanner(System.in); 5 String text = scan.next(); 6 int num = Integer.parseInt(text); 7 String[] data = getUserProfile(num); 8 9 10 11 if(data == null){ 12 System.out.println("指定されたIDは見つかりません"); 13 } 14 // dataがnullでもこのまま実行されてる 15 16 for(int i = 1;i < data.length; i++){ 17 if(i == 0){ 18 continue; 19 } 20 System.out.print(data[i]); 21 } 22 } 23 /* 24 省略 25 */ 26}

投稿2020/04/24 03:04

ozwk

総合スコア13553

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

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

ottto

2020/04/24 04:55

returnの位置を変えたら出来ました!ありがとうございます。
guest

0

ベストアンサー

if(data == null){

System.out.println("指定されたIDは見つかりません");
}
for(int i = 1;i < data.length; i++){

dataがnullだったりしませんか。この値を確認しましょう

投稿2020/04/24 03:02

y_waiwai

総合スコア88042

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

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

ottto

2020/04/24 04:40

すいません、対処の仕方がわからなかったです。 if(data==null)の==を変えると言うことですか?それとも、 for(int i=1;i < data.length; i++)のdataを変えると言うことでしょうか?
y_waiwai

2020/04/24 04:43

まずは原因をはっきりさせて、その対処をする必要があります dataがnullだったとして、その場合にどうしたいんでしょうか そのあなたのやりたいことをすればいいのです 終了させればいいというのならそこで終了させましょう
ottto

2020/04/24 04:54

returnの位置を変えたら出来ました!ありがとうございました。
guest

0

java

1if(data == null){ 2 System.out.println("指定されたIDは見つかりません"); 3} 4for(int i = 1;i < data.length; i++){ 5 if(i == 0){ 6 continue; 7 } 8 System.out.print(data[i]); 9}

dataがnullでも表示の段階に入ってしまいます。
nullなら即時メソッドを終了するなどの処理が必要です。

投稿2020/04/24 03:00

swordone

総合スコア20669

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

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

ottto

2020/04/24 04:36

すいません対処の仕方がわからないです。 exitでプログラムを終わらせると言うことですか?
ottto

2020/04/24 04:53

returnの位置を変えたら出来ました!ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問