一直没注意原来if elseif elseif elseif else...还可以这么弄,不过这么弄逻辑上很艹蛋,不合适,纯装B。
///
int fun (void)
{
printf("i am in fun\r\n");
sleep(2);
return 0;
}
int main()
{
int a = 1;
if( -1 == fun() )
{
printf("1\r\n");
}
else if( -1 == fun() )
{
printf("2\r\n");
}
else if( a == 1 )
{
printf("3\r\n");
}
else if( -1 == fun() )
{
printf("4\r\n");
}
else
{
printf("5\r\n");
}
}
///
结果将显示:
i am in fun
i am in fun
3
总结:if elseif elseif elseif else...结构必定只进入其中一个分支,但是之前需要判断是否进入分支,这时遇上函数或其他啥的就需要先进入函数,
适用情况:在fun()函数执行成功后需接着判断执行其他的分支,而fun()执行失败则其他的分支步骤也都不做了。
if( -1 == fun() )
{
printf("fun error \r\n");
}
else if( xxx )
{
printf("other action 1 \r\n");}
else if( xxx )
{
printf("other action 2 \r\n");}
else
{
}