我的书中有一个练习,要求我写一个等效于:
的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的初学者,我想知道是否有更好的解决方案。
提前致谢。
答案 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;
}