javascript - 在 Javascript 中制作数字表程序(如 12 x 1 = 12)时出现问题

标签 javascript function loops scope nan

我正在尝试制作一个程序,为任何数字生成数学表,如下所示:

3 x 1 = 3

3 x 2 = 6

3 x 3 = 9

3 x 4 = 12

我需要用户输入:

(1) 他们需要表格的任何数字(例如 - 3)

(2) 指定一个起点(例如 - 1)

(3) 指定一个终点(例如 - 4)

到目前为止我的有缺陷的代码如下:

    function isitanumber(numb){
        while (isNaN(numb) == true){
         		numb = parseInt(prompt("Please add a valid number","5"));
         	}
         }
    
    
    function mytable (thenum, first, second){
        for (var i=first; i<=second; i++){
        	var y = thenum*i;
        	document.write(thenum + " x " + i + " = " + y + "</br>");
         }
        }
    
    
    var mynum = parseInt(prompt("Enter the number you wish to have the table for", "40"));
    mynum = isitanumber(mynum);
    
    
    var startpoint = parseInt(prompt("Enter the startpoint of the table", "1")); 
    mynum = isitanumber(startpoint);
    
    var endpoint = parseInt(prompt("Enter the endpoint of the table", "10"));  
    mynum = isitanumber(endpoint);
    
    
    mytable(mynum,startpoint,endpoint);

最佳答案

isitanumber 返回您分配给 mynumundefined(没有 return 语句的函数返回的默认值)每次(mynum = isitanumber(...))。因此,mynum 包含undefined 值。

您应该在完成循环 NaN 后返回该变量(并将其分配给适当的变量):

function isitanumber(numb)
{
    while (isNaN(numb)) {
            numb = parseInt(prompt("Please add a valid number","5"));
    }
    return numb;
}

function mytable (num, start, end)
{
    for (var i = start; i <= end; i++) {
        var y = num * i;
        document.write(num + " x " + i + " = " + y + "</br>");
    }
}

var mynum = parseInt(prompt("Enter the number you wish to have the table for", "40"));
mynum = isitanumber(mynum);

var startpoint = parseInt(prompt("Enter the startpoint of the table", "1")); 
startpoint = isitanumber(startpoint);

var endpoint = parseInt(prompt("Enter the endpoint of the table", "10"));  
endpoint = isitanumber(endpoint);

mytable(mynum, startpoint, endpoint);

关于javascript - 在 Javascript 中制作数字表程序(如 12 x 1 = 12)时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41446659/

相关文章:

javascript - 有条件地更改类 vue.js

javascript - 如何正确创建 LazyLoad es6 类?

javascript - 通过 AJAX 调用生成图像时,图像大小 (.bin) 加倍

arrays - 将二维数组传递给 Rust 中的函数

javascript - 函数提升在有和没有 block 范围的情况下显示不同的结果

javascript - 使用 prototype.clone() 的 Javascript 对象的内联 clone() 函数

loops - VBA 代码需要很长时间才能执行

c - 以下程序打印的输出是什么?如何评估if条件表达式?

javascript - 更改事件未被识别

javascript - 通过键名从对象数组中删除重复的对象