创建一个在敌人死亡后结束的循环

0 html javascript jquery

我如何使用Javascript OOP制作一个循环直到玩家击败敌人?

var character = {};
character.health = 5;
character.damage = 1;

var npc = {};
npc.health = 5;

do {
    npc.health = npc.health -= character.damage;
    document.write(npc.health + "<br>");
}

while (npc.health != 0);
    if (npc.health == 0) {
        document.write("Player wins.");
    }
Run Code Online (Sandbox Code Playgroud)

当角色伤害设置为1时可以正常工作,但一旦它超过1,它就会永远循环并且浏览器会崩溃吗?我糊涂了.另外我如何让它显示0而不是像-1等负数?

And*_*ose 5

如果您character.damage是2,请考虑循环的迭代.

第一次迭代后,npc.health将是3.

第二次迭代后,npc.health将为1.

第三次迭代后,npc.health将为-1.

由于你的while条件是npc.health != 0,你的循环将永远持续,因为npc.health永远不会是0,它将继续变得越来越消极.

改变你的while状况npc.health > 0应该解决你的问题.

为了不显示负面的健康状况npc,在减去之后character.damage,只需添加一个if语句,然后再使用它document.write()来显示npc.health.

if (npc.health < 0) {
    npc.health = 0;
}
Run Code Online (Sandbox Code Playgroud)