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

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

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

null値の参照型変数を参照しようとした場合に投げられる、Javaにおける例外のひとつです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

1回答

1951閲覧

チェックしているつもりがNullPointerException

programming

総合スコア476

NullPointerException

null値の参照型変数を参照しようとした場合に投げられる、Javaにおける例外のひとつです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2016/12/16 08:39

抜粋の中の以下の行でNullPointerExceptionが発生してしまいます。
きちんとwhile 文でチェックしているはずですが、なぜでしょうか。

random_number[i] = int(tmp_number);

以下は抜粋です。

Processing

1 reader_number = createReader("random_number.txt"); 2 if(reader_number == null){ 3 createWriter("random_number.txt"); 4 } 5 try{ 6 int i = 0; 7 String tmp_number; 8 while((tmp_number = reader_number.readLine()) != null){ 9 println(tmp_number); 10 random_number[i] = int(tmp_number); 11 i++; 12 } 13 reader_number.close(); 14 }catch (IOException e) { 15 println("ファイル初期化エラー(random_number.txt)"); 16 println(e); 17 } 18} 19

以下がrandom_number.txtの内容です。

200 150

以下はほぼ全行です。

Processing

1final int window_size = 400; //画面サイズ 2 3float pi_number; //円周率 4int[] random_number; //生成したランダムな数字 5 6//ファイル保存関連 7BufferedReader reader_pi; 8BufferedReader reader_number; 9 10void setup(){ 11 initialize_file(); 12 initialize_window(); 13 size(400,400); 14} 15 16void initialize_window(){ 17 background(255); 18 stroke(0); 19 strokeWeight(4); 20 ellipse(window_size/2,window_size/2,window_size,window_size); 21 //ファイルに保存済みの点を描画 22 if(random_number != null){ 23 for(int i=0;i<random_number.length;i++){ 24 int x = 0, y = 0; 25 if(i/2 == 0){ 26 x = i; 27 }else{ 28 y = i; 29 ellipse(x,y,2,2); 30 } 31 } 32 } 33} 34 35void initialize_file(){ 36 reader_pi = createReader("pi.txt"); 37 if(reader_pi == null){ 38 createWriter("pi.txt"); 39 } 40 try{ 41 if(reader_pi.ready()){ 42 pi_number = float(reader_pi.readLine()); 43 } 44 reader_pi.close(); 45 }catch (IOException e) { 46 println("ファイル初期化エラー(pi.txt)"); 47 println(e); 48 } 49 50 reader_number = createReader("random_number.txt"); 51 if(reader_number == null){ 52 createWriter("random_number.txt"); 53 } 54 try{ 55 int i = 0; 56 String tmp_number; 57 while((tmp_number = reader_number.readLine()) != null){ 58 println(tmp_number); 59 random_number[i] = int(tmp_number); 60 i++; 61 } 62 reader_number.close(); 63 }catch (IOException e) { 64 println("ファイル初期化エラー(random_number.txt)"); 65 println(e); 66 } 67} 68 69float number_make(){ 70 return random(0,window_size); 71}

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

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

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

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

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

guest

回答1

0

ベストアンサー

int[] random_number; //生成したランダムな数字

宣言しただけなので、この配列がnullです。

投稿2016/12/16 09:07

maisumakun

総合スコア145121

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

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

programming

2016/12/16 09:12

そうでした、ありがとうございます。 すみません、かなり基本的なことで...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問