在C语言中将'continue'与基于布尔的语句一起使用

问题描述 投票:0回答:1

我正在尝试解决C语言中的一个问题,该问题限制了程序员使用if / else / switch语句。想法是使用基于布尔的逻辑语句来获取“所需路径”。即-代替:

if (1 > 0)
   printf("TRUE")
else
   printf("FALSE")

我会使用:

bool res = true;
res = (1 > 0 && printf("TRUE")) || printf("FALSE")

(这是一般思想,使用布尔语句处理逻辑来操纵不同的动作。我遇到的唯一问题是替换一个看起来像这样的部分(如果A等于B,我希望程序跳过循环的某个部分):

while (...)
{
   if (A == B)
       continue;
   //code
}

您知道不使用if / else / switch语句是否可以执行?

谢谢!

c if-statement boolean-logic
1个回答
0
投票

您可以使用递归进行循环,而无需使用if语句。

这里是一个全局模式匹配器,它可以比较两个字符串是否匹配,了解*表示零个或多个字符,而?表示一个字符。

main(int c,char**v){return!m(v[1],v[2]);}
m(char*s,char*t){return*t-42?*s?63==*t|*s==*t&&m(s+1,t+1):!*t:m(s,t+1)||*s&&m(s+1,t);}

[如果您想知道为什么它看起来像调制解调器噪声(有人记得吗?问您的父亲),它是IOCCC赢家:-)

© www.soinside.com 2019 - 2024. All rights reserved.