C 是否可以同时执行if---else控制语句的if和else部分?
可能重复:C 是否可以同时执行if---else控制语句的if和else部分?,c,C,可能重复: 是否可以设置一些条件,以便if…else控制语句中的if和else部分都可以在没有任何警告或错误的情况下执行?不,这是不可能的(在同一进程中)。不,没有办法编写薛定谔if子句 您可能可以使用goto同时执行这两个命令,但它永远不会通过代码审查 请勿使用!;-) 是的,通过forking if ( fork() ) { printf("if\n"); } else { printf("else\n"); } 没有真正的用例更喜欢上面的代码,除非它是用于并行执行的。我
是否可以设置一些条件,以便if…else控制语句中的if和else部分都可以在没有任何警告或错误的情况下执行?不,这是不可能的(在同一进程中)。不,没有办法编写薛定谔if子句 您可能可以使用goto同时执行这两个命令,但它永远不会通过代码审查 请勿使用!;-)强> 是的,通过
fork
ing
if ( fork() ) {
printf("if\n");
}
else {
printf("else\n");
}
没有真正的用例更喜欢上面的代码,除非它是用于并行执行的。我假设您试图让这类语句的两个分支都执行
Dim X As Boolean
X = False
If X = True Then
...
Else
...
End If
你可以让它执行使用GoTo。。。但这与良好的编程实践背道而驰
Dim X As Boolean
X = False
If X = True Then
...
Goto ElseStuff
Else
ElseStuff:
...
End If
相反,您应该编写单独的过程/函数来完成您希望在这两个语句中执行的行为。。。或者简单地将在所有情况下都应执行的代码置于If块的外部
这在功能上等同于使用GoTo,而且它向其他任何人表明了这一点。是的,有可能:
#include <stdio.h>
#define else if (1)
int main(void)
{
int test = 1;
if (test == 1)
{
printf("if\n");
}
else
{
printf("else\n");
}
return 0;
}
#undef else
#包括
#定义else if(1)
内部主(空)
{
int检验=1;
如果(测试==1)
{
printf(“如果\n”);
}
其他的
{
printf(“else\n”);
}
返回0;
}
#未定义的其他
给新手的提示:在现实生活中永远不要这样做!相反,再想想你的问题
您可能想要的是:
#include <stdio.h>
int main(void)
{
int one_condition = 1;
int other_condition = 2;
if ((one_condition == 1) || (other_condition == 2))
{
printf("if\n");
}
if ((one_condition != 1) || (other_condition == 2))
{
printf("quasi-else\n");
}
return 0;
}
#包括
内部主(空)
{
int one_条件=1;
int其他_条件=2;
如果((一个条件==1)| |(另一个条件==2))
{
printf(“如果\n”);
}
如果((一个条件!=1)| |(其他条件==2))
{
printf(“准else\n”);
}
返回0;
}
您可以使用另一个带有否定条件的if子句来替换else路径。这使您有可能用第二个条件覆盖它。可能您误解了您的问题 如果希望代码块在不考虑条件的情况下执行,请将其从If…else语句中删除
void foofunc(int n)
{
a = 44*n;
if(a == 484)
{
//do something
}
else
{
//do something if a DOES NOT equal 484
}
//do something regardless of the outcome of the test.
}
在本例中,尽管很可笑,但最后一行在条件语句之外,因此无论a==484与否都将执行,在我看来,这与使c触发else
块相同,而不管测试是否成功
当然,else块不是强制性的,所以如果您不关心如果您的条件失败会发生什么,那么就不需要else块
void foofunc(int n)
{
a = 44*n;
if(a == 484)
{
//do something
}
//do something regardless of the outcome of the test.
}
我希望不会;这在我所知道的所有语言中都是否定的。这难道不能撤销if-else的目的吗?试着描述一下你的实际问题是什么,这似乎是目前寻找问题的解决方案。嗯……首先不要编写if
条件。你为什么要这样做?很明显,这不是你想要的派对游戏,所以一定有你想要解决的问题?那是什么问题?如果你告诉我们,我们可能会给你有用的答案。聪明,但这只是混淆了问题。+1令人印象深刻。。。但我不知道这是好印象还是坏印象:)+1创造性思维;-一万亿,因为现在很多人将实施;-)这是一个巧妙的回答问题的方法(所以+1),但它不会让你感到浑身脏兮兮的吗?+1是因为思维跳出框框;问题并不要求在同一进程中执行两个分支。执行第一个分支的0.4和第二个分支的0.6。我认为这与。。。一切。。。不仅是良好的编程实践;-)其他答案表明这是可能的,使用goto
或#define else if(1)
。