Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在这个简单的任务中重新分配youHit变量的意义是什么?_Javascript - Fatal编程技术网

Javascript 在这个简单的任务中重新分配youHit变量的意义是什么?

Javascript 在这个简单的任务中重新分配youHit变量的意义是什么?,javascript,Javascript,这是我的作业,我知道我在做什么,因为这是我的第三节简单课。然而,我知道重新分配you Hit课程是有意义的,但我看不出来。有人能解释一下目的吗?youHit在循环中被选中。你感兴趣的重新分配将改变循环下一次迭代的行为:当它再次到达if(youHit)时,它将检查youHit的新值。我的猜测是,它将根据对龙的伤害模拟下一次命中。但是,youHit将永远不会变为负值,因为Math.random()返回的值介于0和1之间(每个MDN包含0,不包含1) 如果youHitwhere to go negat

这是我的作业,我知道我在做什么,因为这是我的第三节简单课。然而,我知道重新分配you Hit课程是有意义的,但我看不出来。有人能解释一下目的吗?

youHit
在循环中被选中。你感兴趣的重新分配将改变循环下一次迭代的行为:当它再次到达
if(youHit)
时,它将检查
youHit
的新值。

我的猜测是,它将根据对龙的伤害模拟下一次命中。但是,
youHit
将永远不会变为负值,因为
Math.random()
返回的值介于0和1之间(每个MDN包含0,不包含1)

如果
youHit
where to go negative,那么
If(youHit)
将为假,龙将获胜。
while
循环一直持续到战斗结束。我们无法看到所有代码,但解决方案可能是将
youHit
更改为可能为负值

我想这样做:

var slaying = true;

var youHit = Math.floor(Math.random() * 2);

var damageThisRound = Math.floor(Math.random() * 5 + 1);

var totalDamage = 0;


while (slaying) {

    if (youHit) {
        console.log("Congrats you hit the dragon!");
        totalDamage += damageThisRound;

        if(totalDamage >= 4) {
//This one right here.....
            youHit = Math.floor(Math.random() * 5 + 1);
        };

        }else { 
            console.log("The dragon beat you boyeeeeee");
            };

我不确定这个分布可能是50%的负值和50%的正值,但就我们这里的目的而言,它足够接近了。

我想说的是,除了+1部分之外,它没有任何意义。添加+1将使其始终返回1或更高,因此不是0,也不是false。一旦你对龙造成了超过4点的伤害,它现在太虚弱了,无法躲避在杀戮过程中对它的任何攻击:)为什么它不是你命中=1?没有线索。

如果它没有被分配,你永远不会改变你是否被击中,因为杀人时总是一样。这不是你问题的答案,但我想说的是,
youHit
不是一个类,它是一个变量。EcmaScript 5(普通JavaScript)没有类。是的,哎呀,只是键入了错误的内容而已。我太习惯css.lolWell了,在那之前我有一个Math.floor,所以如果它小于0.5,它将被四舍五入到0,这也是错误的……我想你在这一轮也看到了损伤,但这都是好人。谢谢你的回答。@kingbumworthyphhacktivist是的,但是你+1它,所以它不会降到0。
(Math.random() - 0.5) * 5