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

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

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

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

1267閲覧

ある一つの変数を使おうとすると必ずクラッシュする

shinig001

総合スコア16

Java

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/09/07 11:13

以下のプログラムでMBモデルを作ろうとしています。

しかし、NextButtonをクリックした瞬間停止してしまいます。
Toastやコメントアウトを組み合わせて調べたところ変数counterの記述の箇所までプログラムが来ると停止しているようです。

初期化していないのかと思い、起動した時にcounterの中身を出力させたところちゃんと5が代入されていました。

どこがいけないのか、どなたかわかる方教えてください。

以下、コード

Java

1package com.make.network.network; 2 3import android.content.Context; 4import android.os.Environment; 5import android.provider.ContactsContract; 6import android.support.v7.app.AppCompatActivity; 7import android.os.Bundle; 8import android.view.View; 9import android.widget.Button; 10import android.widget.EditText; 11import android.widget.TextView; 12import android.widget.Toast; 13 14import java.io.File; 15import java.io.FileNotFoundException; 16import java.io.FileOutputStream; 17import java.io.FileWriter; 18import java.util.Set; 19 20 21public class NetActivity extends AppCompatActivity implements View.OnClickListener { 22 23 24 public TextView Net; 25 public Button NextButton; 26 public Button Result; 27 public int counter = DEF; 28 public TextView Counter; 29 public int n = 0,m = 0; 30 public int[][] Object; 31 public int[] result; 32 public int P = (DEF - 1)*(DEF - 2); 33 public double[] Pro; 34 35 36 public static final int AREA = 10;//表の一辺 37 public static final int DEF = 5;//初期状態でつなげる端子の数 38 public static final int PER = 2;//一度につなげるリンクの数 39 40 41 @Override 42 protected void onCreate(Bundle savedInstanceState) { 43 super.onCreate(savedInstanceState); 44 setContentView(R.layout.activity_net); 45 46 //初期値の範囲を1(自分→自分を除く)を代入 47 Initialize(); 48 49 Net = (TextView) this.findViewById(R.id.Netdata); 50 Net.setText("ネットワークを生成します。まず、次へボタンを押してください。"); 51 Counter = (TextView) this.findViewById(R.id.counter); 52 NextButton = (Button) this.findViewById(R.id.NextButton); 53 Result = (Button) this.findViewById(R.id.Result); 54 NextButton.setOnClickListener(this); 55 Result.setOnClickListener(this); 56 //何回目か出力 57 Counter.setText(counter - DEF + "回目"); 58 } 59 60 61 public void onClick (View v) 62 { 63 if(v == NextButton) 64 { 65 int i = 0; 66 Toast st = Toast.makeText(this,"オブジェクトの作成を開始します。",Toast.LENGTH_SHORT); 67 st.show(); 68 while(i < AREA + 1) { 69 if (counter != DEF)//一回目以外は増やす辺の数を確率の分母にたす。 70 { 71 P += PER; 72 } 73 counter++; 74 75 76 Set_Object();//頂点を作成。 77 78 i++; 79 80 } 81 Net.setText("ネットワーク作成完了。RESULTを押してください。"); 82 83 } 84 else if(v == Result) { 85 86 Toast beg = Toast.makeText(this, "開始。", Toast.LENGTH_SHORT); 87 beg.show(); 88 89 result = new int[AREA];//結果データをこの変数に格納 90 91 int i = 0; 92 m = 0; 93 Toast ini = Toast.makeText(this, "初期化開始。", Toast.LENGTH_SHORT); 94 ini.show(); 95 while (i < AREA + 1) { 96 result[i] = 0; 97 while (m < AREA + 1) { 98 result[i] += Object[i][m]; 99 m++; 100 } 101 i++; 102 } 103 Toast ts = Toast.makeText(this, "result格納完了。", Toast.LENGTH_SHORT); 104 ts.show(); 105 String filename = "Result.txt"; 106 File file = new File(getApplicationContext().getFilesDir(), filename); 107 108 i = 0; 109 try { 110 FileWriter filewriter = new FileWriter(file, true); 111 Toast fw = Toast.makeText(this, "ファイルライト開始。", Toast.LENGTH_SHORT); 112 fw.show(); 113 while (i < AREA + 1) { 114 filewriter.write(i + " " + result[i] + "¥r¥n"); 115 i++; 116 } 117 118 filewriter.close(); 119 } catch (Exception e) { 120 e.printStackTrace(); 121 } 122 123 Net.setText("完了しました。"); 124 } 125 126 } 127 128 129 public void Initialize() 130 { 131 Object = new int[AREA][AREA]; 132 while (n != DEF && m != DEF) 133 { 134 if(n == m)//自分→自分は辺なし 135 { 136 Object[n][m] = 0; 137 n++; 138 } 139 else if(n != DEF) 140 { 141 Object[n][m] = 1; 142 n++; 143 } 144 else if(n == DEF) 145 { 146 n = 0; 147 m++; 148 } 149 } 150 } 151 152 public void Set_Object() 153 { 154 155 int sum; 156 Pro = new double[AREA]; 157 Toast cou = Toast.makeText(this,"counterの値は" + counter + "です。" ,Toast.LENGTH_SHORT); 158 cou.show(); 159 /* 160 while(m != counter) { 161 if(n != counter) { 162 sum = Object[n][m]; 163 Pro[m] = sum/P;// 次数/全体を求める。 164 n++; 165 } 166 else if(n == counter) 167 { 168 n = 0; 169 m++; 170 } 171 }*/ 172 173 int a = 0,b = 0; 174 m = 0;n = 0; 175 int i = 0; 176 while (i != PER) { 177 double d = Math.random();//乱数(0-1)を生成。 178 while(a < counter) 179 { 180 if (d < Pro[a]) 181 { 182 Object[a][counter] = 1; 183 Object[counter][a] = 1; 184 185 if (a == b && i != 0) 186 { 187 break; 188 } 189 while (m != counter) 190 { 191 Object[counter][counter] = 0; 192 n++; 193 if(m != a && m != b) 194 { 195 Object[counter][m] = 0; 196 Object[m][counter] = 0; 197 m++; 198 } 199 else if(m == a || m == b) 200 { 201 m++; 202 } 203 } 204 b = a; 205 break; 206 } 207 a++; 208 } 209 i++; 210 a = 0; 211 } 212 } 213 214 215} 216 217 218 219

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

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

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

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

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

yona

2016/09/07 11:17

エラーログを追記してください。
guest

回答1

0

ベストアンサー

Initialize()を呼んでいないのでObjectがnullなんじゃないですか?

変数名やメソッドの先頭文字は小文字にしないとクラス名かなにかわかりません。

投稿2016/09/07 11:23

yona

総合スコア18155

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問