有什么方法可以跳过使用&& amp;在条件声明?

时间:2012-04-07 06:45:14

标签: c logical-operators

我的书中有一个练习,要求我写一个等效于:

的for循环
for(i=0;(i<4) && (i<5);i++)

但未使用&&||运算符。

我提出了这样的解决方案:

for (i=0;;i++)
        if((i<4))
            if((i<5))
                printf("Works!!!\n");
            else
                break;
        else
            break;

有效。由于我是C的初学者,我想知道是否有更好的解决方案。

提前致谢。

2 个答案:

答案 0 :(得分:8)

你的&&结合了两个条件,一个是相对于另一个逻辑上较弱的条件。如果整数小于4,则必须小于5.因此,(i<4) && (i<5)可以替换为(i<4)

答案 1 :(得分:0)

关于样式的注释:总是使用嵌套ifs的大括号是个好主意,至少对于外层ifs,尤其是缺少elses。这不符合您的预期:

if (Cond1)
    if (Cond2)
        DoSomething;
else
    DoSomethingElse;

编译器将else视为属于Cond2。这不会留下任何误解的余地:

if (Cond1)
{
    if (Cond2)
    {
        DoSomething;
    }
}
else
{
    DoSomethingElse;
}