• ベストアンサー

CをC++に訳して~

C言語で do{ A } while( B ); をC++に直すとどうなるのでしょうか。 私は while( B ){ A } となると思ったのですが どうも違うようです。 分かる方、是非教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.5

#4です。 A while(B){ A } の誤りでした。

0000ai
質問者

お礼

お答えありがとうございました。 とっても参考になりました。

その他の回答 (6)

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.7

No.6です。 A; do{  A; } while( B ); は A; while(B){  A; } に訂正します。

0000ai
質問者

お礼

的確に応えていただき、ありがとうございました。 とても参考になりました。

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.6

皆さんが回答しているのは、第一に 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)
回答No.4

>++に直すとどうなるのでしょうか。 C++に直すわけではありませんが、(CでもC++でも同様) A while(b){ A } になります。 つまり、無条件にAを必ず行います。

  • msykykt
  • ベストアンサー率35% (15/42)
回答No.2

どちらもCの文法ですし、両方ともC++で問題なくコンパイルできます。 ちなみに最初のループはBの如何に関わらずAが一度だけ実行されますが、2つ目のループではBがFALSEの場合、実行されないと言う違いがでますね。

0000ai
質問者

補足

最初のループでコンパイルできるのはわかっていますが、 それをC++で書くとどうなるのか という質問だったのです。わかりづらくてすみません。 msykyktさんがおっしゃっているとおり、 2つ目のループは最初のループと結果が違ってきてしまうのですが、 最初のループと同じ結果をC++ではどう書くのでしょうか。 よかったら教えてください。

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.3

C++はCの構文がすべて使えます。 do { A; } while( B ); でいけるはずですが…

参考URL:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/statem_13.asp
0000ai
質問者

お礼

参考URLまで載せていただき、ありがとうございました。

  • uzk
  • ベストアンサー率40% (6/15)
回答No.1

C++でも同じです。 書き直す必要はありません。 殆どの場合、Cの文法はC++でも通用します。

関連するQ&A