首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java脚本for循环

Java脚本for循环
EN

Stack Overflow用户
提问于 2020-06-20 11:12:21
回答 2查看 65关注 0票数 0

我希望循环运行到提示符的值,但它是无限的。需要帮助。以下是我的javascript代码:我的代码

代码语言: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.length
function 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;
     }
    }
  }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-20 11:24:07

您的代码有很多问题。

代码语言:javascript
复制
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循环中的所有代码,并且必须更改声明roundno和for循环中的语句。

代码语言:javascript
复制
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();

票数 2
EN

Stack Overflow用户

发布于 2020-06-20 11:14:50

您没有递增i

变化

代码语言:javascript
复制
i + 1

致下列之一:

  • i++
  • i += 1
  • i = i + 1

此外,您还需要修复循环末尾的if语句。您希望检查i是否等于roundno。不要使用赋值操作符= (将roundno的值赋值给i ),而是使用=====进行等式检查。

代码语言:javascript
复制
if (i == roundno) {
   break;
}

您也在循环条件下输入了相同的错误。将循环条件更改为i == roundno,并在循环结束时删除if语句,因为在循环条件固定后,循环中的if语句是不必要的。

代码语言:javascript
复制
for (var i = 0; i == roundno; i++) {
   // code
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62485046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档