If语句中的错误Javascript

时间:2018-03-02 15:32:16

标签: javascript html css

我是这个网站的新手,目前在加拿大安大略省进行计算机编程课程。我有一个计算机编程课程,目前正在制作一个交互式的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!!";
}
}

2 个答案:

答案 0 :(得分:0)

||&&if条件在else if( condition1 && condition2) || (condition3 && condition4)评估为真。

因此,即使您交换条件,它也始终执行第一个条件。

尝试将if放入elseiffunction 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指定要测试的新条件。