0

我的书中有一个练习,要求我编写一个等效于的 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 的初学者,我想知道是否有比这更好的解决方案。

提前致谢。

4

2 回答 2

8

&&正在结合两个条件,使得一个在逻辑上相对于另一个而言较弱。如果一个整数小于 4,它必然小于 5。因此(i<4) && (i<5)可以用 代替(i<4)

于 2012-04-07T06:47:37.517 回答
0

关于样式的说明:最好总是使用带有嵌套 if 的大括号,至少对于外部的,尤其是缺少 else 的情况。这不会做你打算做的事情:

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

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

if (Cond1)
{
    if (Cond2)
    {
        DoSomething;
    }
}
else
{
    DoSomethingElse;
}
于 2012-04-07T10:50:25.573 回答