如果Else程序执行了Else部分,为什么会这样? [已关闭]

问题描述 投票:0回答:4
#include <stdio.h>
#include <conio.h>
int main()
{
    int a=0;
    if(a=0)
    {
        printf("No is wrong");
    }
    
    else printf("No is right");
    return 0;
}

我知道 if 条件不是 (a==0) 内给出了 (a=0) 那么为什么它打印 Else 部分“No is right”?

c if-statement
4个回答
2
投票

Assignment 返回指定的值,因此语句

a = 0
返回
0
。 在 C 中,
0
被评估为 false,因此它跳到 else 子句并打印“No is right”。


0
投票

您在 if 语句中将 a 分配给 0。

a = 0  # assignment
a == 0 # equality 

因此,要修复您的代码,请将 if 语句更改为

if (a == 0)


0
投票
  1. 您当前在分配给执行语句时缺少“==”。 请记住,当您分配变量时,仅使用“=”。 但是,当“询问”/“检查条件”时,您将需要使用 “==”。

    此外,您还需要在 else 语句周围加上花括号,以使其激发活力。


0
投票
a=0

这是一个赋值运算符。每当您使用“=”时,它都会将右操作数的值分配给左操作数。

对于条件,我们使用“==”并检查它是否为真并评估该语句。

a=0   // a equals to 0 (assignment operator) //
a==0  // checking if a equals to 0 (comparison/relational operator) //
© www.soinside.com 2019 - 2024. All rights reserved.