- ベストアンサー
CをC++に訳して~
C言語で do{ A } while( B ); をC++に直すとどうなるのでしょうか。 私は while( B ){ A } となると思ったのですが どうも違うようです。 分かる方、是非教えてください。 よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
#4です。 A while(B){ A } の誤りでした。
その他の回答 (6)
- ranx
- ベストアンサー率24% (357/1463)
No.6です。 A; do{ A; } while( B ); は A; while(B){ A; } に訂正します。
お礼
的確に応えていただき、ありがとうございました。 とても参考になりました。
- ranx
- ベストアンサー率24% (357/1463)
皆さんが回答しているのは、第一に do{ A; } while( B ); という記述の仕方はCとC++では変わらないということ。 第二に、上と同じ処理を A; do{ A; } while( B ); と書き直せるということ。 これもCとC++で違いはありません。 第3に do{ A; } while( B ); は少なくとも1回は無条件にAを実行するのに対し、 while( B ){ A; } は最初からBが偽(0)なら一度もAを実行しないという違いがあるということ。 これもCとC++で同じです。
- tatsu99
- ベストアンサー率52% (391/751)
>++に直すとどうなるのでしょうか。 C++に直すわけではありませんが、(CでもC++でも同様) A while(b){ A } になります。 つまり、無条件にAを必ず行います。
- msykykt
- ベストアンサー率35% (15/42)
どちらもCの文法ですし、両方ともC++で問題なくコンパイルできます。 ちなみに最初のループはBの如何に関わらずAが一度だけ実行されますが、2つ目のループではBがFALSEの場合、実行されないと言う違いがでますね。
補足
最初のループでコンパイルできるのはわかっていますが、 それをC++で書くとどうなるのか という質問だったのです。わかりづらくてすみません。 msykyktさんがおっしゃっているとおり、 2つ目のループは最初のループと結果が違ってきてしまうのですが、 最初のループと同じ結果をC++ではどう書くのでしょうか。 よかったら教えてください。
- phoenix343
- ベストアンサー率15% (296/1946)
C++はCの構文がすべて使えます。 do { A; } while( B ); でいけるはずですが…
お礼
参考URLまで載せていただき、ありがとうございました。
- uzk
- ベストアンサー率40% (6/15)
C++でも同じです。 書き直す必要はありません。 殆どの場合、Cの文法はC++でも通用します。
お礼
お答えありがとうございました。 とっても参考になりました。