[英]Converting a for loop into a while loop with post-increment
將以下for
循環作為while
循環執行的等價物是什么?
for (int i=0;i<10;i++)
{
...
}
起初我認為以下方法會起作用:
int n = 0;
while (n++ <= 10)
{
...
}
但似乎后增量發生在進入第一個 while 循環之前,所以我需要設置n=-1
來調整它。 是否有更接近的方法將for
循環重寫為while
循環(沒有do
)?
您必須將增量放在循環主體內(在其最后):
int n = 0;
while (n < 10)
{
//...
n++;
}
但請注意:如評論中所述,這樣的循環內的任何continue
語句(如果不是本身包含在嵌套的內部循環中)將破壞代碼並創建潛在的無限循環!
故事的寓意:當for
循環合適時使用for
循環,而當while
循環合適時使用while
循環。
有兩種方法可以做到。
嘗試以下源代碼
int n=0;
while(n <= 10){
//do your task here
n++;
}
做時
int n=0;
do{
//do your task here
n++;
}while(n <= 10)
如果你想要一個后遞增的 while 循環,那么在 while 循環中使用 (n - 1) 或者你也可以創建一個臨時變量。
int n = 0;
while(n++ < 10){
// use n - 1
}
或者,
int n = 0;
while(n++ < 10){
int tn = n - 1; // use tn instead of n - 1
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.