Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用for循环在javascript中编写和调用函数?

如何使用for循环在javascript中编写和调用函数?
EN

Stack Overflow用户
提问于 2018-06-18 20:50:31
回答 1查看 337关注 0票数 1

我正在为一门课程编写代码,需要弄清楚为什么代码输出不能正确执行。我对编码非常陌生,这是一个初学者的任务,所以所有的帮助和解释都非常感谢。

输出应如下所示:

代码语言:javascript
运行
AI代码解释
复制
Output: 

How many times to repeat?  2
Stats Solver execution 1 ====================
give a number  10.10203
give a number  20
give a number  30
give a number  40
give a number  50
sum: 150.10203
average: 30.020406
max: 50
min: 10.10203
ratio: 4.94
Stats Solver execution 2 ====================
give a number  3.21
give a number  2.1
give a number  1
give a number  5.4321
give a number  4.321
sum: 16.0631
average: 3.21262
max: 5.4321
min: 1
ratio: 5.43
done ====================

代码如下:

代码语言:javascript
运行
AI代码解释
复制
"use strict";

function myMain() {
  var num = Number(prompt("give a number of times to repeat, must be 0 or greater"));
  var count = num;
  for (var a=0; a<=num; a++) {count++;}
  alert("Stats Solver execution " + num + " ===================");
  if (num===0){alert("done ==================="); return;}
  wall()
  alert("done ===================");

   
}                
function wall(){  
  var num1 = Number(prompt("provide a number"));
  var num2 = Number(prompt("provide a second number"));
  var num3 = Number(prompt("provide a third number"));
  var num4 = Number(prompt("provide a fourth number"));
  var num5 = Number(prompt("provide a fifth number"));
  
  var sum = (num1+num2+num3+num4+num5);
  alert("sum: " + sum);
  var avg = (sum/5);
  alert("average: " + avg);
  var max = (Math.max(num1,num2,num3,num4,num5));
  alert("max: " + max);
  var min = (Math.min(num1,num2,num3,num4,num5));
  alert("min: " + min);
  var ratio = (max/min);
  alert("ratio: " + Math.floor(ratio*100)/100);

}

myMain(); 

EN

回答 1

Stack Overflow用户

发布于 2018-06-18 21:38:18

嗯,你真的一点也不离谱。实际上,您的解决方案包含了所需的所有代码,只是其中一些代码放错了位置。我会把这个作为评论发布,但由于这是一个新的工作账号,我实际上不能发表评论,所以这里有一个完整的解决方案和解释。

您的墙功能,虽然恼人的所有警报实际上是正确的,不需要任何调整。也就是说,您可能希望尝试使用parseIntparseFloat来确保获得有效的数字,但我假设这超出了赋值的范围。

现在来看看你的main函数。

代码语言:javascript
运行
AI代码解释
复制
var num = Number(prompt("give a number of times to repeat, must be 0 or greater"));

这是好的,并将提示用户输入一个数字,您可能再次想要测试您使用上述链接获得了一个有效的数字。

代码语言:javascript
运行
AI代码解释
复制
var count = num;
  for (var a=0; a<=num; a++) {count++;}
  alert("Stats Solver execution " + num + " ===================");
  if (num===0){alert("done ==================="); return;}
  wall()
  alert("done ===================");

这就是事情开始瓦解的地方,也是我认为你有问题的地方。因此,我将逐行分解这一行,并解释每一行都在做什么,您可以将其与您认为它所做的进行比较。

代码语言:javascript
运行
AI代码解释
复制
var count = num;

这里没什么特别的,您只是创建了另一个变量来保存num变量中的值。有点多余,但并不是什么大问题。

代码语言:javascript
运行
AI代码解释
复制
for (var a=0; a<=num; a++) {count++;}

这一行似乎给您带来了最大的困惑。这是实际的循环,但在循环体内部{ ....}除了将1添加到计数(count++)之外,没有执行任何操作。如果我对赋值的理解正确的话,在这个循环中,你需要在警告'Stats Solver execution .....‘之后调用你的wall函数。一些东西。你所需要做的就是把你的函数调用移到这个循环里面。

代码语言:javascript
运行
AI代码解释
复制
if (num===0){alert("done ==================="); return;}
      wall()
      alert("done ===================");

这部分显然让你有点迷茫,只是尝试让它正常工作,即使在12+多年的开发之后,我仍然会写这样的代码;)。您真的不需要这样做,因为对wall()的实际调用对您来说已经很好了。

我很无聊,正在等待工作,所以为了成为一个完整的答案,这里有一个例子,说明你的代码应该是什么样子的。请不要只是交出来,而是试着真正理解我写的和你做的之间的区别,因为这些是一些非常基本的概念,如果你掩盖了这些概念,你的生活会变得更加艰难。随时可以问,这就是人们学习的方式。

代码语言:javascript
运行
AI代码解释
复制
function myMain(){
    // get the number of repetitions from the user and cast as a number
    var num = Number(prompt('Please enter the number of times to repeat'));
    // loop from 0 to the number the user provided - 1 hence the < 
    for (var i = 0; i < num; i++){
        // alert the iteration of the loop, you will notice i add 1 to num when we alert it; this is because it starts at 0 so the first time it displays it would show 'Stats Solver execution 0 ======' instead of 'Stats Solver execution 1 ======'
        alert('Stats Solver execution ' + (num + 1) + ' ===============');
        // call your wall function
        wall();
        // go back to the top of the loop
    }
    // alert that we are done. 
    alert('done===============')
}
// your wall function goes here
// call your myMain function to kick everything off
myMain();

只是为了好玩,你可能想看一下console.log,而不是alert,这样就不会让弹出窗口变得如此烦人。

如果我漏掉了什么,或者你对任何事情感到困惑,请不要犹豫,我会尽我所能回答的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50917282

复制
相关文章
爬虫--xpath匹配,requests库
使用xpath得到老师的图片链接和简介信息,并且把图片保存下来,老师简介保存到文本中; 要求: 杨老师的信息图片<img src="pics/ygf.jpg"> 图片保存的名字叫ygf.jpg,其他老师类似;并且都保存到当前目录下的image目录 杨老师的信息保存文件名叫“ygf.txt”,其他老师类似;并且保存到当前目录下的text目录 代码: import requests from lxml import etree import os def save(img_url, desc):
用户2337871
2019/07/19
5100
爬虫--xpath匹配,requests库
scala 模式匹配的几个模式
Scala 的模式匹配是类似与正则匹配的的模式匹配,但是不仅仅如此,它还可以匹配对象的内在的构建形式.
Tim在路上
2020/08/04
1.2K0
模式匹配
如果在不设置全文搜索的情况下,如何过滤查询结果,您会选择哪种方法?LIKE也许是最容易想到的:
yzsDBA
2021/02/03
9990
模式匹配
匹配操作符(绑定操作符): =~、!~ =~检验匹配是否成功:result= var =~ /abc/;若在该字符串中找到了该模式,则返回非零值,即true,不匹配则返回false。
生信补给站
2020/08/06
1.7K0
Scala 的模式匹配
最近开始学习 Scala,相较于学习 Haskell 的过程来看,Scala 真是直观得多,友好得多,更容易上手。以前写过关于从熟悉的 Java 和 JavaScript 来逐步学习 Groovy 和 Haskell 的文章,这以后再来学习 Scala 的话,就可以不断比较了。如果和我一样有 Java 经验的话但是从来没有接触过 Scala 的话,建议先阅读这篇文章,A Scala Tutorial for Java Programmers,一边比较,一边熟悉,同时配套的还有这个,Scala for Java programmers – Joakim Ohlrogge & Enno Runne,Youtube 上的视频,很直观,然后再从 Scala 官网的文档上面逐步涉入。
四火
2022/07/19
1K0
Scala 的模式匹配
Rust模式匹配
模式匹配是从函数式编程语言(例如:Haskell,Lisp)吸收而来的,用于为复杂的类型系统提供一个轻松的解构能力。rust使用match来提供模式匹配的功能。mathc类似于其它编程语言中的switch-case,但是远比switch-case强大。match的通用模式如下所示。
zy010101
2023/02/27
1.5K0
有趣的Scala模式匹配
它被称为模式匹配,模式匹配包含了一系列以case关键字开头的分支,每一个分支包含一个模式或者是多个表达式。模式有很多种,例如常量模式('*',1),变量模式(可以匹配任何值),通配模式(又见面了,'_'符号),构造方法模式(类似于样例类的初始化)等等。 用一个例子简单说明就是:
哒呵呵
2018/08/06
1.1K0
Rust中的模式匹配
在其它一些语言中,let x = 5 之类的语句,仅仅只是赋值语句。但是在rust中,可以换个角度理解,认为5这个值匹配到了x变量。如果觉得有些牵强,可以再来一个示例:
菩提树下的杨过
2021/11/30
1.9K0
Rust中的模式匹配
Swift中的模式匹配
Swift 作为一门现代语言,除去安全,快速等特性之外,还有个明显有别于其他语言的特性,就是巨量细致入微的语言特性。类似iOS API,初学者觉得繁杂,无从下手,但是熟悉之后,绝对能少写不少代码。
小刀c
2022/09/21
1.8K0
Scala 模式匹配
一个模式匹配包含了一系列备选项,每个都开始于关键字 case。每个备选项都包含了一个模式及一到多个表达式。箭头符号 => 隔开了模式和表达式。
王知无-import_bigdata
2019/03/19
8980
《模式识别与智能计算》基于PCA的模板匹配法
算法流程: 选取各类全体样本组成矩阵X,待测样品 计算协方差矩阵S 根据S的特征值选取适合的矩阵C 使用矩阵C降维 采用模板匹配开始多类别分类 算法实现 PCA降维算法 def pca(x,k=0,percent = 0.9): """ :function: 主成分分析法 :param X: 数据X m*n维 n表示特征个数,m表示数据个数 :param K: K表是要保留的维度 :param percent: 样本所占比例 :return: 返回特征向量
Max超
2020/01/16
7510
less中的匹配模式
首先来看如下的代码,一个 div 元素,分别设置了上下左右的宽度高度和颜色,然后在浏览器中打开发现四个不同的角都是一个小小的三角形如下
程序员 NEO
2023/09/29
2450
less中的匹配模式
朴素的模式匹配算法
子串(又称模式串)的定位操作通常称做串的模式匹配,是串中最重要的操作之一。朴素的匹配方法(BRUTE FORCE 算法,BF 算法)逻辑思路:
用户7737280
2021/11/10
1K0
Lua模式匹配
Lua并不使用POSIX规范的正则表达式[4](也写作regexp)来进行模式匹配。主要的原因出于程序大小方面的考虑:实现一个典型的符合POSIX标准的regexp大概需要4000行代码,这比整个Lua标准库加在一起都大。
sunsky
2020/08/20
1.8K0
模式匹配算法
模式匹配算法: 定义一个主串字符串S="goodgoogle",再定义一个模式串字符串T="google",然后依次遍历主串中的字符,判断,模式串是否在主串中存在,这种模式串的定位操作通常称为串的模式匹配 代码: 1 /** 2 * 朴素的模式匹配算法 3 * @author wydream 4 * 5 */ 6 7 public class OrdinaryModel { 8 9 public static void main(String[] args)
说故事的五公子
2019/09/11
9320
基于OpenCV的直方图匹配
如何为图像生成直方图,如何使直方图相等,最后如何将图像直方图修改为与其他直方图相似。
AI算法与图像处理
2020/12/07
1.4K0
Python的模式匹配库pampy
模式匹配即给定某种模式,用这种模式去检查序列或字符串是否符合这种模式,这种技术在自然语言处理中经常使用。
Python研究所
2022/06/17
6810
4.3 串的模式匹配算法
1、子串的定位操作通常称做串的模式匹配(其中T称为模式串),是各种串处理系统中最重要的操作之一。
小林C语言
2019/07/12
7240
Python匹配方式之xpath,还在用正则吗?一节课带你学会更简单的xpath
  XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。
云飞
2018/09/14
7370
点击加载更多

相似问题

基于节点()包含()内容的Xpath匹配

14

基于属性引用的XPath节点匹配

37

基于匿名的模式匹配

10

基于OR逻辑的模式匹配

20

基于列表长度的匹配模式匹配

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档