为了账号安全,请及时绑定邮箱和手机立即绑定

用于循环的 Java 脚本

用于循环的 Java 脚本

慕标琳琳 2022-10-13 10:53:40
我希望循环运行直到提示的值,但它会无限。需要帮忙。这是我的 javascript 代码: 我的代码var round = prompt("enter text");var roundno = round;var images_arr = ["../img/paper.png", "../img/stone.png", "../img/sisor.png"];var size = images_arr.lengthfunction myFunction() {for (var i = 0; i = roundno; i + 1) {    console.log(i);    setInterval(function () {        var x = Math.floor(size * Math.random())        $('#random').attr('src', images_arr[x]);    }, 1500);    setInterval(function () {        var sound = new Audio("../audio/audio.mp3");        sound.play();    }, 3000);    if (i = roundno) {        break;     }    }  }
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

你的代码有很多问题。


var round = prompt("enter text"); // how do you know the user enters a number?

var defaultNumberOfRounds = 1;  // I added this row


// CHANGED THIS IN EDIT 

var roundno = round; // should be: isNaN(Number(round)) ? defaultNumberOfRounds : round


var images_arr = ["../img/paper.png", "../img/stone.png", "../img/sisor.png"];

var size = images_arr.length

function myFunction() {


// CHANGED THIS IN EDIT the conditions within () should be: var i = 0; i < roundno; i++

for (var i = 0; i = roundno; i + 1) {

    console.log(i);


    // all iterations in the loop will execute this at the same time.

    setInterval(function () {

        var x = Math.floor(size * Math.random())

        $('#random').attr('src', images_arr[x]); // JQuery

    }, 1500);


    // all iterations in the loop will execute this at the same time.

    setInterval(function () {

        var sound = new Audio("../audio/audio.mp3");

        sound.play();

    }, 3000);


    if (i = roundno) { // should be i == roundno

        break; // don't need to break it, because your for loop's condition should take care of this

     }

    }

  }

} // ADDED THIS IN EDIT: missing curly bracket

[编辑] 我添加了一个片段来显示我的代码正在运行。我注释了 for 循环中的所有代码,我不得不更改roundnofor 循环中的声明和语句。


var round = prompt("enter text");

var defaultNumberOfRounds = 1;

var roundno = isNaN(Number(round)) ? defaultNumberOfRounds : round;

var images_arr = ["../img/paper.png", "../img/stone.png", "../img/sisor.png"];

var size = images_arr.length;

console.log(`round: ${round}, roundno: ${roundno}`);

function myFunction() {

  for (var i = 0; i < roundno; i++) {

    console.log(i);


    /*setInterval(function () {

        var x = Math.floor(size * Math.random())

        $('#random').attr('src', images_arr[x]); // JQuery

    }, 1500);


    setInterval(function () {

        var sound = new Audio("../audio/audio.mp3");

        sound.play();

    }, 3000);*/


  }

}


myFunction();


查看完整回答
反对 回复 2022-10-13
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

你没有增加i

改变

i + 1

到以下之一:

  • i++

  • i += 1

  • i = i + 1

您还需要if在循环结束时修复语句。您要检查是否i等于roundno。而不是使用赋值运算符来分配to=的值,使用or进行相等性检查。roundnoi=====

if (i == roundno) { 
  break;
  }

您在循环条件中也犯了同样的错字。将循环条件更改为i == roundno并删除if循环结束时的语句,因为循环条件固定,if循环内的语句是不必要的。

for (var i = 0; i == roundno; i++) { 
  // code
  }


查看完整回答
反对 回复 2022-10-13
  • 2 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号