- 締切済み
java break文とラベル
・for文から合計の数値が1000を越えたら処理を終了するコードを削除する。 ・for文を10回繰り返すfor文を作る。 ・for文で値を1~100まで足したら値はりせっとせずに保持する。 (for文は1~100までを足すと5050になるので、5050にさらに1➕2➕3…と数を加算していく) ・加算結果の数値が20000を越えたら、全ての処理を終了する。 ・終了にはbreak文とラベルを使用する。 以上の条件の作成ができません。 public static void main(String []args){ outside : for(int n = 1: n <= 100; n++){ for(int a = 1; a <= 100; a++){ int i = 1; i += a; if(i > 20000){ break outside; } System.out.println(i); } } } } までは出来ました。 出力結果が1~19900までなりません。 どうしたらその結果になるのかわかる方教えてください。 お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- mpro-gram
- ベストアンサー率74% (170/228)
5050 * 4 = 20200 -100 = 20100 - 99 = 20001 - 98 = 19903 : 最終値 既に答えは出てるのに、最終値も勘違いしてるんじゃあないのか?
- Tacosan
- ベストアンサー率23% (3656/15482)
「出力結果が1~19900までなりません」ってのはどういう意味なんだろう. どんな「出力結果」になったんですか?
- anmochi
- ベストアンサー率65% (1332/2045)
む? public static void main(String[] args) { int i = 0; // 追加 outside: for (int n = 1; n <= 100; n++) { for (int a = 1; a <= 100; a++) { // int i = 1; ここを無くす i += a; if (i > 20000) { break outside; } System.out.println(i); } } } こうしたらばっちりになりませんか?
- anmochi
- ベストアンサー率65% (1332/2045)
int i = 1; がおかしい。これをoutsideの前に出してかつ1じゃなくて0を代入すべし。
補足
それでも1~19900までなりません。