引数の数だけ乱数(0~99)を生成する、int[] makeArray(int n)、戻り値はint型の配列
引数が0または負の値の場合は、「引数が不正です」と表示し、nullを返却する。
引数として受け取った配列の中身を出力する、void printArray(int[] a)、戻り値void
引数の配列がnullだった場合は、何も表示しない。
上記2つのメソッドを定義する。
main()メソッドで、画面から数値を入力させて、
入力した値をmakeArrayメソッドに渡し、
その戻り値をprintArrayメソッドに渡して実行確認をする。
package sample; import java.util.Scanner; import java.util.Random; public class Sample { public static int[] makeArray(int n) { Random rand = new Random(System.currentTimeMillis()); if(n <= 0) { System.out.println("引数が不正です"); return null; } int[] array = new int[n]; for(int i=0;i<array.length;i++) { array[i] = rand.nextInt(100); } return array; } public static void printArray(int[] a) { if(a == null) { } for(int i=0;i<a.length;i++) { System.out.print(a[i]+","); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("乱数の数:"); int n = sc.nextInt(); makeArray(n); printArray(makeArray(n)); } }
上記のコードを実行すると、正の数は実行されますが、0と負の数はエラーが起こります。
どう対処すれば正しく実行されるか協力お願いします。
エラー
Exception in thread "main" java.lang.NullPointerException: Cannot read the array length because "a" is null
at sample.Sample.printArray(Sample.java:27)
at sample.Sample.main(Sample.java:38)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/03 16:34
2021/01/03 17:26
2021/01/04 00:46