while和for循环在c ++中

Ram*_*pta 1 c++ for-loop while-loop

1)

 i = 0;

 while(i < N){

   j = i+1;

   while(j < N && p[i].first == p[j].first && p[j].second - p[i].second < K) j++;

     i = j; res++;

             }
Run Code Online (Sandbox Code Playgroud)

2)

for(i=0;i<N;i++){

   j = i+1;

   while(j < N && p[i].first == p[j].first && p[j].second - p[i].second < K) j++;

     i = j; res++;
                 }
Run Code Online (Sandbox Code Playgroud)

第一个代码和第二个代码的区别仅在于1)中的while循环和2中的循环.但据我所知,由于它们两者的输出应该是相同的,但它有所不同.以上代码都只是总代码的一部分.但是我应该告诉你1)输出是2,而2)是3.

我不知道为什么答案是不同的,因为发生的一切都是一样的.

Pau*_*ell 8

for循环递增两次.一旦进入for循环定义本身(i++)然后间接通过j.

while循环只进行间接增量j.所以这两个例子不一样.