我是 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和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;
}