• ベストアンサー

C言語について

初心者で学校の課題をやっているときに疑問がでてきてしまったので、基本的な質問なのですが、教えて頂けたらうれしいです。 1.関数にすることによってどんな利点があるのでしょうか。 2.分岐のif文とswitch文は同じ処理をしていると考えていいのでしょうか。 3.switch文の中にfor文や、for文の中にswitch文など、条件式の中に条件式をいれることはできるのでしょうか?? 一度に3つも質問してしまってすみません。 ぜひ回答をおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

1.関数の利点 1)汎用性のある関数であれば複数の開発者で共有できる 2)同じ処理や似た処理を毎回書くより、プログラムサイズを小さくできる 2.ifとswitch 似ていますが、判定式を評価する回数が異なります。 if~else if~else if~elseの構文では、条件が成り立つまでif、else ifの判定式が毎回評価されますが、switchの構文では判定式は1回のみ評価されます。 3.構文の入れ子 {}で囲むブロックの中には、{}で囲めるブロックを入れ子に出来ます。

neige_6
質問者

お礼

丁寧に回答して頂いてありがとうございました。初心者の私も理解することができました。今後もわからないことがあったら質問すると思うのですが、できたら教えて頂きたいと思います。ありがとうございました。

その他の回答 (3)

  • rancers5
  • ベストアンサー率6% (3/43)
回答No.4

>3.switch文の中にfor文や、for文の中にswitch文など いくらでも可能ですが、あまり多くするのはお勧めできません。 構造が複雑になり、動作確認や保守がやりにくくなります。 例えば、switchの中の条件を関数化するなどしたほうが良いです。 保守を考えると、プログラムテクニックに頼る書き方も本来良くないのですが。

neige_6
質問者

お礼

回答ありがとうございました!switchの中を関数化すると構造が簡単になって、よりいいんですね。今度挑戦してみます。今後もわからないことがあったら質問するかもしれませんが、その時もできたら教えて頂きたいと思います。ありがとうございました!

  • akipapa
  • ベストアンサー率38% (34/89)
回答No.3

関数の効用について共通処理を関数化すりことの効用はすんなりと理解できるでしょう。でも、それだけではありません。 プログラム開発の現場で、行数の多いプログラムほど困るものはありません。保守するときのことを考えて、機能ごとにできるだけコンパクトにすることがだいじです。 関数に分割しないで、だらだらとコーディングしてもプログラムとしてはちゃんと動くものになるのですが、機能ごとに関数にすることで、処理内容が理解し易く、保守性の良いプログラムにすることができます。

neige_6
質問者

お礼

丁寧に教えていただいてありがとうございました!効用を考えることだけでなく、コンパクトにすることも大事なんですね。プログラムを作っていく上で参考にしていこうと思います。ありがとうございました!

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

//重複しないと思われる範囲で 1. 同じ処理を再利用できる。 処理を抽象化することができる。 2. switch の場合、break しないと下に抜けてしまう。 3. ブロックの中にブロックや文は含めることができる。 条件式の中に条件式の意味はよくわからない。

neige_6
質問者

お礼

回答ありがとうございました!3については私の理解がまだ足りないみたいですね^^;しっかり勉強していきたいと思います。ありがとうございました。

関連するQ&A