2011-08-04 34 views
0

在使用Xcode的C中,如何更改while循环以加速循环的第一个循环?在使用Xcode的C中,如何更改while循环以加速循环的第一个循环?

#include <stdio.h> 

int main (int argc, const char * argv[]) 
{ 
    int i; 

    i = 0; 
    while (i++ < 4) 
     printf ("while: i%d\n",i); 

    printf ("after while loop, i=%d\n\n", i); 

    for (i = 0; i < 4; i++) 
     printf ("first for: i=%d\n", i); 

    printf ("after first loop, i=%d\n\n", i); 

    for (i= 1; i <=4; i++) 
     printf ("second for: i=%d\n", i); 

    printf ("after second loop, i=%d\n", i); 

    return 0; 
} 

回答

0

要改变while环路for循环:

for (i = 1; i < 5; ++i) 
    printf ("while: i%d\n",i); 

为了while循环打印数字,如for循环:

while (i < 4) 
    printf ("while: i%d\n", i++); 

或者:

while (i < 4) 
{ 
    printf ("while: i%d\n", i); 
    ++i; 
} 

阅读关于前-增量 vs post-increment来获得想法。例如,here

+0

大太感谢你了 – Midnight14osx

1
while (i < 4) 
     printf ("while: i=%d\n",i++); 

会做的伎俩。 i++是一个后增量,所以printf语句打印i,然后增量。

+0

伟大的工作先生BlackJack它最终运作。 – Midnight14osx

0

问题在于while检查i = 0,i = 1,u = 2,i = 3和i = 4。当它失败时,它打破,但它打破之前,它更新我一次,并设置i为i ++(I = 5)

所以,你得到

while: i0 
while: i1 
while: i2 
while: i3 
while: i4 

after while loop, i=5 

for条款不更新我比较失败后,让你获得

first for: i=0 
first for: i=1 
first for: i=2 
first for: i=3 

after first loop, i=4 

如果你想匹配这两个条款,尽量增加我的while内,而不是在条件本身。

+0

谢谢陛下,但是当我在一边加上递增的同时,它给我这样的:当:I = 1个 同时:I = 2 而I = 3 同时:I = 4 后while循环,我= 5,但最好的解决方案是像这样增加while(i <4) printf(“while:i =%d \ n”,i ++); – Midnight14osx

+0

我在说的是在这段时间内递增,但不是在printf之前递增。说'printf(“%d”,i ++);'和printf(“%d”,i)一样。我++;'在两个步骤。如果你反过来这样做,你会得到同样的问题。 –

+0

BRB ............ – Midnight14osx