重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

プログラム初心者です。
九九を表示するプログラムの一部ですが・・・

----------------------------------------------------------
for(int i=1;i<10;i++){
for(int j=1;j<10;j++){
System.out.print(i+"*"+j+"="+(i*j)+",");
----------------------------------------------------------

これで
1*1=1、1*2=2.1*3=3、.....
2*1=2、2*2=4、....
3*1=3.......................

9*1=9・・・・・・........
のようにちゃんと表示されますが・・・
なんでこのようになるのでしょうか・・・。
考えてもわからないです。
私には1*1=1、2*2=4、3*3=9、4*4=16・・・・・9*9=81
になるようにしか考えられないのですが・・・
説明がわかりにくいかもしれないですが・・
お願いします。

A 回答 (3件)

何度もすみません。


もうちょっとわかりやすく書きます。
(さっきのは、走り書きっぽいので(^^;)

もっと噛み砕いて書くと↓

for(iを1~9に変化させる){    …A
 for(jを1~9に変化させる){   …B
  System.out.print(i*j=○を表示する);
 }
}

こんな感じになるわけですね。
for文ってのは、中身を済ませて次に進みます。
A文で i を増やすためには、中にあるB文を一通り済ませます。
つまり、iが1の時、jを1~9で動かしてから、iを2にする。

そんな具合に、考えるとわかりやすいですよ。
    • good
    • 0
この回答へのお礼

分かりやすいご説明ありがとうございました。
よく分かりました!(^^)

お礼日時:2002/07/31 22:01

次の動きをするからです。


( )内が処理される順序。
( 1)I=1 J=1
( 2)I=1 J=2
( 3)I=1 J=3
   ・・・・・・・・・・
( 9)I=1 J=9
(10)I=2 J=1 J=10になろうとするが条件            がJ<10のためJのループの            外に出てIを1増やす
(11)I=2 J=2
   ・・・・・・
(17)I=2 J=8
(18)I=2 J=9
(19)I=3 J=1 J=10になろうとするが条件            がJ10のためJのループの             外に出てIを1増やす

(20)I=3 J=2
  ・・・・・・・
    • good
    • 0
この回答へのお礼

ありがとうございました^^
理解できました。

お礼日時:2002/07/31 22:01

for(int i=1;i<10;i++){


for(int j=1;j<10;j++){ …

というのを見て気づくといいのですが、
「j」を増やすという動作は、
「i」を増やすというループ文の中にあるわけです。

つまり、i=1の時に、jを1~9の間、変化させる。
それが終了したら、i=2にしてjを変化させる、
次は…という具合になるんです。

for文がどこまでかかっているか、
というのを注意してみるといいですね。
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2002/07/31 22:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!