2014-12-03 54 views
0

語言是C++,我試圖使用系統(「cls」)do {} while循環,但我不希望它在第一次或第二次運行此語句。我希望這個聲明能夠第三次運行。有沒有什麼辦法可以在每循環3次迭代之後在do-while循環中運行此代碼? 感謝如何每3次循環執行一次語句?

+2

而不是'system(「cls」);',我會使用類似[this](http://stackoverflow.com/a/7911218/179910)。快得多,並且具有相同程度的可移植性(即在任何情況下都沒有)。 – 2014-12-03 18:31:46

回答

2

而不是i%3爲他人有人建議,我會避免(通常相當緩慢)的分工操作,並在發生火災時重置計數器:

int i=0; 
do { 
    if (++i == 3) { 
     clear_screen(); 
     i = 0; 
    } 
} while (whatever()); 

當然,當你清理屏幕時(特別是通過system的呼叫),它與避免劃分的區別在於海洋中的一滴水,但培養良好的習慣是一件好事,在這種情況下,你增加速度並不會降低可讀性,所以它顯然是一個淨增益。

1
int i=0; 
do 
{ 
    i++; 
    if(!(i % 3)) 
    system("cls"); 
}while(True) 
+0

沒有理由增加和單獨檢查 - 'if(!(++ i%3))'恕我直言更易讀,甚至'if(++ i%3 == 0)' – Slava 2014-12-03 18:52:37

1

是的,你可以添加一個計數器,並提供一個如果conditon像如下: -

int c=0; 
do{ 
    c++ 
    .... 
    .... 
    if (c%3==0) 
    system("cls"); 
    ... 
    ... 
    }while(); 

調整此代碼所需的:-)