質問: 単体でのテストパターンがイメージできません。 if文の入れ子でつまずいています。フローチャートを書いてみても途中で分からなくなりました。 条件が1~3あって、文1~3が処理結果として表示されるのでしょうか? ご回答お待ちしています。よろしくお願いいたします。 if(●●==■■){ 条件1 if(▲▲==(U2)0x70{ 条件2 if((◆◆==OFF) 条件3 &&(〇〇〇<=◇◇◇)){ ▽▽=(U1)ON; 文1 ☆☆=(U1)ON; } else{ ▽▽=(U1)OFF; 文2 ☆☆=(U1)OFF; } } else{ ▽▽=(U1)ON; 文3 ☆☆=(U1)OFF; }
回答: !!イメージ説明説明 IFで判断する条件、(b) 条件が成立した時(THEN)に行う処理、(c) 条件が成立しなかった時(ELSE)に行う処理、の3つから出来ていて、THENブロックやELSEブロックが無い場合もあります。 質問のコードのフローチャートを書いてみると上の図のようになります。 ・最初のIF(条件1)には 条件が成立しない時(ELSE)の処理が無くて、条件が成立した時(1THEN)には、IF(条件2)に行きます。 ・二つ目のIF(条件2)で条件が成立した時(2THEN)はIF(条件3)に行き、条件が成立しない時(2ELSE)は文3が実行されます。 ・三つ目のIF(条件3)で条件が成立した時(3THEN)は文1が実行され、条件が成立しない時(3ELSE)には文1が実行されます。 分かりづらかったのは、最初のIFのELSEブロックが無いためではないかと思います。あるいは、THENブロックに"THEN"とは書かれていないからかも。 IFが3つあったら、THENブロックとELSEブロックも、それぞれ3つあるのが標準的な構成で、THENブロックやELSEブロックが無い(処理すべきものが無いので省略されている)場合もあるというふうに理解してください。