第13講 3次魔方陣の自動生成 
第6話 1行1行のトレースその2 
        for(i3=1;i3<10;i3++){
          a[0][2]=i3;
          if(a[0][2]!=a[0][0] && a[0][2]!=a[0][1] ){
            if(a[0][0]+a[0][1]+a[0][2]==15){

本話はここまで解説します。

となり、重複検査
      if(a[0][1]!=a[0][0]){   
をクリアして、

        for(i3=1;i3<10;i3++){
          a[0][2]=i3;

が入力対象になります。for文の第1回処理により、

となりますが、これは重複検査
          if(a[0][2]!=a[0][0] && a[0][2]!=a[0][1] ){
に抵触しますので、
          if(a[0][2]!=a[0][0] && a[0][2]!=a[0][1] ){
            if(a[0][0]+a[0][1]+a[0][2]==15){
                     ・
                     ・
                     ・
            }
          }

の命令は遂行されず、i3++が実行され
        for(i3=1;i3<10;i3++){
          a[0][2]=i3;

によって、

となりますが、これも重複検査
          if(a[0][2]!=a[0][0] && a[0][2]!=a[0][1] ){
に抵触します。先も同じですが、ピンクが抵触する部分です。
したがって、今回も
          if(a[0][2]!=a[0][0] && a[0][2]!=a[0][1] ){
            if(a[0][0]+a[0][1]+a[0][2]==15){
                     ・
                     ・
                     ・
            }
          }

は無視され、、i3++が実行され
        for(i3=1;i3<10;i3++){
          a[0][2]=i3;

によって、

となり、ようやく重複検査
          if(a[0][2]!=a[0][0] && a[0][2]!=a[0][1] ){
をクリアしますが、残念ながら行合計検査
            if(a[0][0]+a[0][1]+a[0][2]==15){
を通ることができません。
1+2+3=6
で15にはほど遠いのです。以下、













と進みますが、
1+2+9=12
で大分15に近づきましたが、善戦もここまでで
        for(i3=1;i3<10;i3++){
          a[0][2]=i3;
          if(a[0][2]!=a[0][0] && a[0][2]!=a[0][1] ){
            if(a[0][0]+a[0][1]+a[0][2]==15){

                 ・
                 ・
          }
        }
の全ループが終了したことになります。


第5話へ 第7話へ

戻る

C言語講義第1部へ
VB講義へ
VB講義基礎へ

vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)