我是这个网站的新手,目前在加拿大安大略省进行计算机编程课程。我有一个计算机编程课程,目前正在制作一个交互式的tic-tac-toe游戏。我在函数中使用if语句来验证胜利者。我有一个If和一个if if。但是只有第一个if工作并且执行其代码。当我尝试做其他条件时,如果它不起作用。但是,如果我交换了我的其他,如果是,那么两个条件都被交换。再次只有第一次工作,第二次永远不会工作。所以对我而言,听起来我的条件很好。我不知道这是否有意义lol
function verifie_gagnant()
{
if (document.getElementById("centregauche").firstChild.classList.contains("markX") &&
document.getElementById("centrecentre").firstChild.classList.contains("markX") &&
document.getElementById("centredroite").firstChild.classList.contains("markX") ||
document.getElementById("centregauche").firstChild.classList.contains("markO") &&
document.getElementById("centrecentre").firstChild.classList.contains("markO") &&
document.getElementById("centredroite").firstChild.classList.contains("markO"))
{
document.getElementById("winner").innerHTML= tours + " a ete vaincu!!";
}
else if (document.getElementById("hautgauche").firstChild.classList.contains("markX") &&
document.getElementById("hautcentre").firstChild.classList.contains("markX") &&
document.getElementById("hautdroite").firstChild.classList.contains("markX") ||
document.getElementById("hautgauche").firstChild.classList.contains("markO") &&
document.getElementById("hautcentre").firstChild.classList.contains("markO") &&
document.getElementById("hautdroite").firstChild.classList.contains("markO"))
{
document.getElementById("winner").innerHTML= tours + " a ete vaincu!!";
}
}
答案 0 :(得分:0)
||
个&&
个if
条件在else if
和( condition1 && condition2) || (condition3 && condition4)
评估为真。
因此,即使您交换条件,它也始终执行第一个条件。
尝试将if
放入elseif
和function verifie_gagnant()
{
if ((document.getElementById("centregauche").firstChild.classList.contains("markX") &&
document.getElementById("centrecentre").firstChild.classList.contains("markX") &&
document.getElementById("centredroite").firstChild.classList.contains("markX")) ||
(document.getElementById("centregauche").firstChild.classList.contains("markO") &&
document.getElementById("centrecentre").firstChild.classList.contains("markO") &&
document.getElementById("centredroite").firstChild.classList.contains("markO")))
{
document.getElementById("winner").innerHTML= tours + " a ete vaincu!!";
}
else if ((document.getElementById("hautgauche").firstChild.classList.contains("markX") &&
document.getElementById("hautcentre").firstChild.classList.contains("markX") &&
document.getElementById("hautdroite").firstChild.classList.contains("markX")) ||
document.getElementById("hautgauche").firstChild.classList.contains("markO") &&
document.getElementById("hautcentre").firstChild.classList.contains("markO") &&
document.getElementById("hautdroite").firstChild.classList.contains("markO")))
{
document.getElementById("winner").innerHTML= tours + " a ete vaincu!!";
}
}
条件
示例修复。(您需要查看实际需要对条件进行分组的方式)
{{1}}
这是你可以修复的第一件事(语法)之后你需要实际看到在评估单个条件后返回的实际数据是什么。也许两者都有相同的数据。
答案 1 :(得分:0)
通过听取您的问题,在所有情况下看起来都是正确的。因此,哪个条件首先执行,首先跳过else部分。你可以测试这个删除else并将它们保持在单独的if条件下。你会注意到它在两个条件下导航。你需要改变你的IF条件。请参阅下文,了解有关If条件的更多信息
IF是条件语句。 ...如果指定的条件为真,则使用if指定要执行的代码块。如果相同条件为false,则使用else指定要执行的代码块。如果第一个条件为false,则使用else if指定要测试的新条件。