菊池さんの所で、テストが出てきました。
テストのURL:構造化プログラミングについてのテスト
http://www.ailight.jp/blog/kazuk/archive/2005/03/10/4881.aspx
構造化プログラミングって、何者かよくわかってないんですよね。
ただ、お題がでているので、自分の好き嫌い。
ただの感性で答えて行きたいと思います。
■return が複数ある関数は複数の出口がある。(y/n) :y
return が複数ある関数って実は嫌いだったり。。。
プログラムを書くときはいいのですが、メンテナンスする時に、上にも下にも
ループの途中にあったらいやな感じ。
でも、try-finally で囲えば、一箇所から捨てられるから no にしておきます。
悩むなぁ。 そういう事を言っているんじゃないっていわれそう。
嫌いと言う感性を信じて、yesにしちゃいます。
■goto があるし、関数内に複数のreturnを書けるからC#/Javaを含む近代的言語でも構造化プログラミングに反する関数を書ける(y/n) :y
これは良く分からない、、、
while とか for とかを使わなくても、プログラムが書けるので、yes にしておきます。
■breakもcontinueもループの終端の前後にラベルを用意したgotoと同じだ、だから構造化プログラミングに反する(y/n) :n
この程度は、許してあげてもいいのかも
ただ、 continueはあまり好きではないかな。ちゃんと 閉じる括弧で、ループに戻ろうよとは思います。
でも、ちょっとぐらい許すと言うことで、 no
■関数の入り口が一つであるのはどんな言語でも当然の事だ(y/n):n
どんな言語でも?
それはあまりにも世界が広すぎる。。。 マシン語レベルで考えれば、
好きなアドレスにIPを移せるんだから、入り口が一個しかないとはいえないのでは?
他の言語が良く分かってないので、根っこから攻めてみました。
なので no
さてと、0点の可能性もありますね。
とりあえず、答案を提出してみようと思います。 また一人反省会かな。