• 締切済み

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までなりません。 どうしたらその結果になるのかわかる方教えてください。 お願いします。

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.4

5050 * 4 = 20200 -100 = 20100 - 99 = 20001 - 98 = 19903 : 最終値 既に答えは出てるのに、最終値も勘違いしてるんじゃあないのか?

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

「出力結果が1~19900までなりません」ってのはどういう意味なんだろう. どんな「出力結果」になったんですか?

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

む?  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)
回答No.1

int i = 1; がおかしい。これをoutsideの前に出してかつ1じゃなくて0を代入すべし。

s_yonezawa
質問者

補足

それでも1~19900までなりません。