javascript - Javascript 仅在另一个“if”失败时执行“if”
问题描述
一个月前我开始学习 Javascript,我有一个疑问。我正在编写一个简单的游戏,它考虑一个随机数,你必须在尝试用完之前猜测它。为了确定玩家猜对或猜错了数字,我做了以下(简化代码):
start(){
num=documentGetElementById("num").value;
attempts=10;
}
try(){
attempts=attempts-1;
if(num==random)documentGetElementById("message").innerHTML="You have won.";
if(attempts==0)documentGetElementById("message").innerHTML="You have lost.";
}
这里发生的情况是,当您在最后一次尝试中猜测数字时(还剩 1 次尝试),它表示您输了。所以我的问题是:如何优先考虑 if(num==random)...?
- -编辑 - -
完整代码:
-HTML:
<div id="game">
<div id="message"></div>
<div id="status"></div>
<div id="think"></div>
<div id="start">
<button id="start-button" class="boto-inici" onClick="start()"><span>START</span></button>
</div>
<div id="try">
<label for="tryinput">Number:</label>
<input type="text" id="tryinput"/>
<button class="try-button" onClick="try()"><span>TRY</span></button>
</div>
</div>
-JS:
function start(){
document.getElementById("start").style.display="none";
document.getElementById("try").style.display="block";
document.getElementById("message").style.display="block";
document.getElementById("status").style.display="block";
document.getElementById("message").innerHTML="I've thought a number between 1 and 100";
document.getElementById("status").innerHTML="You have 10 attempts.";
random = Math.floor(Math.random()*100);
attempts=10;
}
function try(){
attempts=attempts-1;
document.getElementById("status").innerHTML="You have " + attempts + " attempts left.";
var num=document.getElementById("tryinput").value;
if(num>random)document.getElementById("message").innerHTML="The number you chose is bigger.";
if(num<random)document.getElementById("message").innerHTML="The number you chose is smaller.";
if(num==random){
document.getElementById("message").innerHTML="You won.";
document.getElementById("status").innerHTML="The number I thought was the " + random + " .";
document.getElementById("try").style.display="none";
document.getElementById("start").style.display="block";
}
if(attempts==0){
document.getElementById("try").style.display="none";
document.getElementById("message").innerHTML="You lost.";
document.getElementById("status").innerHTML="The number I thought was the " + random + " .";
document.getElementById("start").style.display="block";
}
if(isNaN(num)){
alert("Please write a number.");
}
}
它可能包含一些 id 错误,因为我翻译了它。希望能帮助到你。
解决方案
这不是优先事项。两个测试都按照给定的顺序运行。
您的问题是,如果第一个测试通过,您根本不想进行第二个测试。
使用 anelse
所以第二个测试仅在第一个测试失败时运行。
推荐阅读
- c - c 语言 gcc 编译器 *.i 文件 #3 "" 2 这是什么?
- python - 使用 discord.py 获取用户当前所在频道的 ID
- python - 如何用列中不存在的值的行填充pandas df,然后向后填充na?
- jenkins-pipeline - 如果参数值匹配,则如何在 Jenkins 参数化管道中设置其他条件,然后触发作业,否则不
- reactjs - 按钮的material-ui对齐问题
- python - 为什么每隔几次写入,写入 HTTP 流就会暂停 > 100 毫秒?
- android - 以编程方式创建的按钮不遵循主题的按钮样式
- python - 将 jupyter notebook 转换为 html 时没有名为 pythonjvsc 的内核
- python - (discord.py) 从 JSON 文件中获取用户的最后一条消息而不指定名称/ID
- android-studio - 如何将文件写入下载文件夹?