尝试编写一个简单的 if-else c 代码,但它没有按预期工作

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

我是 C 代码新手,目前正在尝试编写 if-else 语句。但无论我输入什么答案,我的代码都只打印出第一个条件。你们知道这个问题吗?

这是我的代码:

#包括

int main () {

char choice;

printf("are you handsome? (y or n): ");
scanf("%c", &choice);

if (choice='y') {
    printf("you are clearly lying");
}
else if (choice='n') {
    printf("i'm glad you're being honest :D");
}
else {
    printf("you're not following instructions");
}
return 0;

}

c
1个回答
1
投票

在C和C++中,“=”运算符表示赋值。因此,在您的代码中,您将“y”分配给

choice
,因此
choice
现在获得非零值并等于
true

尝试使用等价运算符

==
来代替:

    #include <stdio.h>
    
    int main () {
    
       char choice;
    
       printf("are you handsome? (y or n): ");
       scanf("%c", &choice);
    
       if (choice == 'y') {
          printf("you are clearly lying");
       }
       else if (choice == 'n') {
          printf("i'm glad you're being honest :D");
       }
       else {
          printf("you're not following instructions");
       }
       return 0;
    }
© www.soinside.com 2019 - 2024. All rights reserved.