C 程序忽略if-else语句
我已经编写了一个非常简单的代码,以确保在我将其实现到更大的项目中之前,它能够正常工作。 用户将看到一个包含三个选项的列表,用户应选择一个选项,在此代码中显示他/她的选项C 程序忽略if-else语句,c,if-statement,C,If Statement,我已经编写了一个非常简单的代码,以确保在我将其实现到更大的项目中之前,它能够正常工作。 用户将看到一个包含三个选项的列表,用户应选择一个选项,在此代码中显示他/她的选项 #include <stdio.h> #include <conio.h> int main() { char c; int allowed; printf("Pick any:\n 1. one \n 2.two \n 3.three \n"); c = getch(
#include <stdio.h>
#include <conio.h>
int main()
{
char c;
int allowed;
printf("Pick any:\n 1. one \n 2.two \n 3.three \n");
c = getch();
do{
//getch();
if (c = '1'){
printf("ONE");
allowed = 1;
} else if (c = '2'){
printf("TWO");
allowed = 1;
} else if (c = '3'){
printf("THREEEEEE");
allowed = 1;
}else{
printf("Choice was invalid, do it again:");
allowed = 0;
}
}while (allowed = 0);
return 0;
}
#包括
#包括
int main()
{
字符c;
允许整数;
printf(“选择任何:\n 1.1\n 2.2\n 3.3\n”);
c=getch();
做{
//getch();
如果(c='1'){
printf(“一”);
允许=1;
}else如果(c='2'){
printf(“两个”);
允许=1;
}else如果(c='3'){
printf(“三方”);
允许=1;
}否则{
printf(“选择无效,请再次执行:”);
允许=0;
}
}while(允许=0);
返回0;
}
但是,输出将始终打印:1,无论我在键盘上点击什么,调试器显示它到达第一个允许的=1,然后跳到do while循环的末尾
有人能告诉我为什么吗?你需要换衣服
if (c = '1')
if (c = '1')
到
这是因为
c='1'
将c
赋值给'1'
并返回'1'
,其计算结果为true,从而触发if
在c中进行比较时,必须使用双等运算符(=)。因此,在比较if(c='1')时,将c赋值为'1',这将返回true。改变
到
为了避免你所犯的错误,我倾向于把常数放在比较运算的左边;在您的情况下就是(
1=c
)。试试看!;-)谢谢一些我没有意识到的事情,它解决了它。
if (c = '1')
if (c == '1')