我是编程新手,所以我使用的代码仅限于我所学到的。无论如何我正在开发一种场景,在这种场景中,用户输入两个选项中的一个,这两个选择将触发不同的代码集来执行,或者至少是我试图做的事情。然而,当我浏览我的代码时,它正在执行它,好像没有if语句所有内容都作为一个块运行。我很确定我的逻辑是正确的,如果有什么我的语法是不确定的。如果有什么可以做的话,你们可以做些什么来帮助解决我的问题,如果可能的话,我想学习而不仅仅是解决问题。感谢您的时间。
int main()
{
int move = 0, pstrength = 10, pdefense = 20, pintelligence = 40, php = 10, estrength = 30,
edefense = 40, eintelligence = 25, ehp = 10;
printf("Battle Start!\n\nYour HP: %d Enemy HP: %d\n\n1 - Attack\n2 - Magic\n\n", php, ehp);
float pap = (float)pstrength / (float)edefense * 5;
float pmp = (float)pintelligence / (float)eintelligence * 5, eap = (float)estrength /
(float)pdefense * 5;
do {
printf("Select your move: ");
如果选择了动作1,/ 玩家将选择执行什么动作然后玩家攻击如果敌人没有下降到0马力,则敌人攻击然后循环重置并提示第二轮输入 /
scanf("%d", &move);
if (move = 1); {
printf("\nYou attacked the enemy!\n");
ehp = ehp - (float)pap;
if (ehp > 0){
printf("The enemy attacked you!\n\n");
php = php - (float)eap;
printf("Your HP: %dEnemy HP: %d\n\n", php, ehp);
}
}
if (move = 2); {
printf("\nYou shocked the enemy!\n");
ehp = ehp - pmp;
if (ehp > 0){
printf("The enemy attacked you!\n");
php = php - (float)eap;
printf("Your HP: %dEnemy HP: %d\n\n", php, ehp);
}}
} while (php >= 0 && ehp >= 0);
if (php <= 0)
printf("You Died!");
else
printf("You Won!");
return 0;
}
我运行调试并且发生了什么,无论我的选择是否(move = 1)或if(move = 2)它是否系统运行,如果我在开始时输入2,就像我输入1一样,依此类推。
答案 0 :(得分:5)
;
语句后都有一个if
。删除它们。 ==
而不是 =
进行平等检查。看起来像这样:
if (move == 1) { ... }
答案 1 :(得分:0)
if语句阻塞后你有分号! if语句的正确语法是if(condition){code}