0

do-while-do ループのようなものが必要になることがよくあります。現時点では、この概念を次のように実装しています。

Instructions part 1 (for instance: read data)
while(Condition){
    Instructions part 2 (save data)
    Instructions part 1 (read next data)
}

パート 1 を 2 回書かなければならず、見苦しいです。重複を取り除くことは可能ですか?私は次のようなコンセプトを考えています。

do{
    Instructions part 1
} while (Condition) do {
    Instructions part 2 
}
4

5 に答える 5

5

私は通常、次のようにして同様の問題を解決します。

while (true) {
  Instructions part 1
  if (!Condition) {
    break;
  }
  Instructions part 2
}
于 2013-08-27T13:36:26.693 に答える
3

読み取り/フェッチが 1 回だけのアプローチを好む

何かのようなもの:

bool readData(SomeObject & outPut) {
  perform read
  return check-condition
}

while (!readData (outObj)) {
  // work on outObj
}
于 2013-08-27T13:39:53.727 に答える
1

part 1を返す関数を入れると、次のboolようなことができます。

while (DoPart1())
{
    DoPart2();
}
于 2013-08-27T13:42:55.507 に答える