如果陈述不起作用?
我是编程的一个小菜鸟。 我只想问下面的代码有什么问题:
scanf("%i", &battlechoice); printf("BCHOICE WAS:%i\n", battlechoice); if (battlechoice=4) //fleeing { fleechance=rand() % 100; if (fleechance <= 49) { printf("You attempt to flee...\n"); sleep(2000); printf("Oh dear! You failed to flee! Gamover!\n"); printf("Thank you for playing! -Anthony\n"); sleep(7000); exit(0); } else { printf("You succeeded in fleeing! You will be returned to town\nshortly...\n\n\n\n\n"); sleep(3000); break; } } //end fleeing else if (battlechoice=1) //attacking { //player damage gen printf("You commence the attack...\n"); sleep(750); damagemax = rand() % lvl * 1.4; damageoutcome = damagemax + damagemin; }
现在发生的是,即使它们有不同的条件,它也在做两个if语句。 哪里不对? 提前致谢。
您将赋值运算符=
与等号运算符==
混淆。 写这个,而不是:
if (battlechoice == 4)
等等。
有些C程序员使用“Yoda条件”来避免在这些情况下意外地使用赋值:
if (4 == battlechoice)
例如,这不会编译,捕捉错误:
if (4 = battlechoice)
如果(battlechoice = 4)用if(battlechoice == 4)
因为'='和'=='运算符都是不同的
'='是赋值运算符,'=='是比较运算符
请参阅C http://www.tutorialspoint.com/cplusplus/cpp_operators.htm中的运算符链接;