是否可以將C中的while循環中的數組大小遞減大於x--
。例如,你可以在每次迭代時將數組的大小減少三分之一嗎?遞減c while循環
int n = 10;
while (n < 0)
// do something
(round(n/3))-- // this doesn't work, but can this idea be expressed in C?
謝謝你的幫助!
是否可以將C中的while循環中的數組大小遞減大於x--
。例如,你可以在每次迭代時將數組的大小減少三分之一嗎?遞減c while循環
int n = 10;
while (n < 0)
// do something
(round(n/3))-- // this doesn't work, but can this idea be expressed in C?
謝謝你的幫助!
您可以使用任意表達式:
int n = 10;
while (n > 0) // Note change compared with original!
{
// Do something
n = round(n/3.0) - 1; // Note assignment and floating point
}
注意,您可以僅減少變量,而不是表達式。
你也可以使用一個for
循環:
for (int n = 10; n > 0; n = round(n/3.0) - 1)
{
// Do something
}
在這種情況下,值的序列n
將是相同的(n = 10, 2
)您是否全面使用浮點或沒有,所以你可以寫:
n = n/3 - 1;
你會看到相同的結果。對於其他上限,序列會改變(n = 11, 3
)。這兩種技術都很好,但你需要確保你知道你想要什麼,就這些。
代碼中沒有數組。如果你不想在每次迭代中獲得其三分之一的價值,那麼你可以做n /= 3;
。請注意,由於n
是積分,因此應用積分除法。
是的,可以向您的變量n
加上或減去任何數字。
通常情況下,如果你想做一些可預測的次數,你可以使用for
循環;當你不確定會發生多少次,而是你正在測試某種狀況時,你可以使用一個while
循環。
最稀有的迴路是do
/while
循環,當你想在第一時間將while
檢查時之前執行循環一次肯定時才使用。
例子:
// do something ten times
for (i = 0; i < 10; ++i)
do_something();
// do something as long as user holds down button
while (button_is_pressed())
do_something();
// play a game, then find out if user wants to play again
do
{
char answer;
play_game();
printf("Do you want to play again? Answer 'y' to play again, anything else to exit. ");
answer = getchar();
} while (answer == 'y' || answer == 'Y');
就像K-說假面舞會中有你的示例代碼沒有數組,但這裏是一個整型數組的例子。
int n = 10;
int array[10];
int result;
// Fill up the array with some values
for (i=0;i<n;i++)
array[i] = i+n;
while(n > 0)
{
// Do something with array
n -= sizeof(array)/3;
}
但是,在給while循環檢查n是否小於零的示例代碼時要小心。當n初始化爲10時,while循環將永遠不會執行。在我的例子中,我改變了它。
你是指什麼*減量數組* *? – Pubby
這是功課嗎? –