我可以在C中的另一个if语句中使用if语句作为条件吗?

问题描述 投票:-1回答:2

我可以这样做吗?我一直在寻找答案,但是找不到。我要做的是:

if(a==5)
{
   printf("25");
}

if((if(a==5))==TRUE)
{
    printf("\n30");
}

这在C中是允许的吗?

c if-statement syntax conditional-statements
2个回答
0
投票

if(a==5)
{
   printf("25");
}

if((if(a==5))==TRUE)
{
    printf("\n30");
}

可以用相同的逻辑重写这种方式

int condition;

if( ( condition = a == 5 ) )
{
   printf("25");
}

if( condition )
{
    printf("\n30");
}

0
投票

我可以在C中的另一个if语句中使用if语句作为条件吗?

可以这样做,在语法上是正确的,但是它是多余的,因为您可以使用逻辑运算符在一个if语句的条件测试中证明多个表达式:

int a = 5;
int b = 10;

if(a == 5 && a == 10)     // If a is 5 AND b is 10. - true
{
    /* some code */
}

int a = 6;
int b = 10;

if(a == 5 || a == 10)     // If a is 5 OR b is 10. - true
{
    /* some code */
}

给出您的例子:

if(a==5)
{
   printf("25");
}

if((if(a==5))==TRUE)
{
    printf("\n30");
}

在外部if语句的条件内的内部if语句是多余的,因为if语句自行证明条件是否为真。

因此,if((if(a==5)) == TRUE)if((a==5) == TRUE)if(a==5)都相等。

实际上,该示例中的两个后续if测试之间没有区别。此示例中的代码等效于:

if(a==5)
{
   printf("25");
   printf("\n30");
}
© www.soinside.com 2019 - 2024. All rights reserved.