簡體   English   中英

將 for 循環轉換為具有后增量的 while 循環

[英]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循環。

有兩種方法可以做到。

  1. while 循環
  2. do-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM