我正在尝试将if语句更改为while语句。
例如int A=1; if(A==1){};
与int A=1 while(A!=1)
相似。
我的If语句没有代码,为了避免else-if语句,我只需要它什么也不做。
我的If语句位于1 While语句和1 If语句内。
因此,我希望程序在while语句中执行相同的操作,而不是在1 While语句和1 If语句中使用带If语句的无代码语句。
原始代码是这样的
while(C1)
{
if(C2)
{
if( h->data[temp] < h->data[temp*2] && h->data[temp] < h->data[temp*2+1] )
{
break;
}
else if(C4)
{
DO();
}
}
}
我已将其更改为
while( C1 && h->data[temp] > h->data[temp*2] && h->data[temp] > h->data[temp*2+1] )
{
if(C2)
{
if(C4)
{
DO();
}
}
}
结果是不同的。原始代码给出正确的结果,但更改后的代码给出不正确的结果。我仅将位置更改为if到while,还将运算符。
整个代码看起来好像我花了更少的精力在投票上。所以我发布的代码有点像伪代码。
最佳答案
例如int A = 1; if(A == 1){};类似于int A = 1 while(A!= 1)。
如前所述,您的循环正在中断。上面的陈述也是不正确的。
int a = 1;
if(a == 1) {} //this is true, and will happen once
但
int a = 1;
while(a != 1) {} //false on entry, skip loop ( never entered )
如果可以隔离条件,也可以考虑使用开关/盒。
这样可以达到删除if的目标,并使代码更具可读性。
例如
int a = 1;
while(a)
{
switch(a)
{
case 1: ++a; continue;
case 2: do();
default: break; //end loop
}
}
关于c - 将if语句更改为while语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31816152/