石野光仁 Blog

開発、C#、ASP.NET、アイライトの活動について、いろいろ

AILight Banner
AILight Blog

プロフィール

石野光仁 Blog

目次

Blog 利用状況

記事分類

過去の記事

タグ

テストに参加してみる

菊池さんの所で、テストが出てきました。
テストの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点の可能性もありますね。
とりあえず、答案を提出してみようと思います。 また一人反省会かな。

投稿日時 : 2005年3月10日 16:25


コメントを追加

#  re: テストに参加してみる 2005年3月10日 17:19 石野 光仁

>return が複数ある関数は複数の出口がある。

これ キックした側から言えば
出てくる口は一つなんだよなぁ。

そういう事を言っているのかなぁ

#  re: テストに参加してみる 2005年3月11日 0:24 菊池

とりあえず採点。 50 点でした。

>そういう事を言っているのかなぁ

 んー、かすってはいるけど、本当の答えではないかな。

#  re: テストに参加してみる 2005年3月11日 8:47 石野 光仁

おぉ。50点も取れましたね。

まぁまぁの成績ですね。あとは回答を楽しみにしています。

#  re: テストに参加してみる 2005年3月11日 10:14 石野 光仁

50点を取れて喜んでいたが、
二択で50点ってもしかして。。。 orz...
タイトル
名前
URL
コメント