将`while`循环转换为`for`循环

时间:2016-02-08 17:58:18

标签: c loops while-loop

我是C的新手,不确定我的循环是否正确转换。

while(a<b--)
{
    do
    {
        d+=a++;
    }
    while(a!=c);
    c+=a&b;
 }

这是我的循环

for( ; a<b ; b--)
{
    d += a++;
    for( ; a != c ; a++)
    {
        c+= a&b
    }   
}

我知道这可能很容易也很愚蠢,但我希望你能帮助我:) THX

1 个答案:

答案 0 :(得分:2)

我认为它应该是这样的:

for(;a<b--;){ 
for(d += a++ ; a != c ; )
{
  d += a++; 
}    
c+= a&b
}

以上逻辑有效!

我按如下方式运行了两个程序,它们输出相同的结果:

计划1:[来自您的计划1]

#include<stdio.h>
int main(){

int a=10,b=10,c=10,d=10;

while(a<b--)
{
do
{
    d+=a++;
}
while(a!=c);
c+=a&b;
}
printf("a=%d\tb=%d\tc=%d\td=%d",a,b,c,d);
}

它输出:

a=10    b=9 c=10    d=10

同样改变了Program2:[按要求]

#include<stdio.h>
int main(){

int a=10,b=10,c=10,d=10;

for(;a<b--;){
for(d += a++ ; a != c ; )
{
d += a++;
}
c+= a&b;
}
printf("a=%d\tb=%d\tc=%d\td=%d",a,b,c,d);
}

它输出相同的内容:

a=10    b=9 c=10    d=10