如何修复这个非常简单的if语句?

时间:2016-12-24 07:07:33

标签: javascript html if-statement

我一直在研究如何使用JavaScript制作一个简单的硬币翻转脚本,而且我已经看过那些使用20个不同元素或者你称之为的东西看起来过于复杂的人的视频。我打算做的是创建一个“魔术8球”类型的脚本,但只使用简单的命令。我有它工作,所以我有一个文本框,然后旁边是一个按钮,按下它将执行一个功能。

我的问题:

T. 我不想在使用Math.floor(Math.random() * 4)时返回数字,而是要返回“是”,“否”,“可能”等字样。此外,我想知道()Math.random()中做了什么。
我的代码如下。如果没有输入任何内容,则第一个声明有效,“请输入一个问题”,但其余部分则没有。

function checkFunction() {

  if (question.value == '') {

    document.getElementById("fortune").innerHTML = "Please Enter A Question";

} else {

  Math.floor(Math.random(data) * 4);

	if (data == 0) {

    		document.getElementById("fortune").innerHTML = "Maybe";

	} else if (data == 1) {

		document.getElementById("fortune").innerHTML = "Try Again";

	} else if (data == 2) {

		document.getElementById("fortune").innerHTML = "Yes";

	} else if (data == 3) {

		document.getElementById("fortune").innerHTML = "No";

	} else {

		return "Invalid";
	}
}
}

我不在乎它是否很长,我只是想让它变得简单。我不想定义一堆变量并乱用它们,因为我只是想一步一步。在继续学习新事物之前,我基本上试图弄清楚if语句的最大潜力。

3 个答案:

答案 0 :(得分:3)

  

我想知道()在Math.random()中做了什么。

Math.random()是一个函数,它不需要参数。 ()表示它是一个功能。您正在将data传递给函数,但函数将不会使用它,因为它是无参数的。

答案 1 :(得分:2)

如果您不想获得该回报:

function checkFunction() {

    var arr = ['Maybe','Try Again','Yes','No'],
        index = Math.floor(Math.random() * 5); //0 to 4

    document.getElementById('fortune').innerHTML = (question.value=='')? 'Please Enter A Question' : (index<arr.length)? arr[index] : 'Invalid';
}

如果你想让回报使用这个:

function checkFunction() {

    var arr = ['Maybe','Try Again','Yes','No'],
        index = Math.floor(Math.random() * 5); //0 to 4

    var tmp = (question.value=='')? 'Please Enter A Question' : (index<arr.length)? arr[index] : false;

    if (tmp===false){
        return 'Invalid';
    }else{
        document.getElementById('fortune').innerHTML = tmp;
    }
}

答案 2 :(得分:0)

  Math.floor(Math.random(data) * 4);

忽略参数data,因为Math.random没有参数。表达式语句的计算结果为范围[0,4]中的整数值。执行后data仍未定义(或以前的任何内容)。

您可以使用整数随机数生成器函数,例如:

function randomInt( low, high) {
   var range = high - low + 1;
   return low + Math.floor( range * Math.random());
}

在调用时返回包含范围[low,high]中的整数。