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

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

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

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

Q&A

解決済

1回答

547閲覧

break, continueなどを使ったコードを書きましたが思っていた通りにコマンドプロンプト上で表示されない...。

chimo

総合スコア55

Java

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

0グッド

1クリップ

投稿2020/02/19 16:53

continueやbreakなどを使って以下のコードを書きました。

java

1outside1: 2 for(int i1 = 1 ; i1 <= 9 ; i1++){ 3 String disp1 = ""; 4 for(int j1 = 1 ; j1 <= 9 ; j1++){ 5 if(i1*j1 == 54){ 6 break outside1; 7 } 8 disp1 = disp1 + i1*j1 + " "; 9 } 10 System.out.println(disp1); 11 } 12 13 outside2: 14 for(int i2 = 1 ; i2 <= 9 ; i2++){ 15 String disp2 = ""; 16 for(int j2 = 1 ; j2 <= 9 ; j2++){ 17 if(i2*j2 == 54){ 18 continue outside2; 19 } 20 disp2 = disp2 + i2*j2 + " "; 21 } 22 System.out.println(disp2); 23 }

このコードから得られた結果は以下の通りです
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
.
.
.
5 10 ................45
1 2 3.................9
2 4 6................18
.
.
.
5 10.................45
7 14.................63
8 16.................72

という感じになりました。

私が思っていた結果というのは、まずif(i1j1 == 54)では命令している通りならば、積が54になればループからぬけるということであれば、6の段の積は54以外すべて表示されるはずであるのに、実際は5の段までしか表示されていません。また、同様なことが、if(i2j2 == 54)でも言えると思っています。つまり積の結果が54になったときのみ積の結果を表示せずにoutside2のループへ戻るならば、積が54になる(i2, j2) = (6, 9)と(9, 6)のときのみ表示がされないと予想していましたが、6の段と9の段がまるごと表示されていません。どうしてそのようなことが起こるのでしょうか。

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

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

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

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

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

guest

回答1

0

ベストアンサー

積が54になればループからぬけるということであれば、6の段の積は54以外すべて表示されるはずであるのに、実際は5の段までしか表示されていません。

54 が現れた時点で二重ループを中断するため, 6 の段の System.out.println(disp1) は実行されません.

continue の場合も, 積 54 がある段は System.out.println(disp2) が実行されません.

投稿2020/02/19 17:10

jimbe

総合スコア12737

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

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

chimo

2020/02/20 07:32

そうか!そもそも I = 6の時に、j=9になるまでの間もコンピューター上で計算はされているけど表示はまだされていないから積が54になってoutside1のループからぬけたとき、I=6のときは全く表示されなくなってしまうんですね!!よく理解できました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問