我正在尝试解决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语句是否可以执行?
谢谢!
您可以使用递归进行循环,而无需使用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赢家:-)