Почему делимость не отображается правильно при выполнении моего цикла?

Вы можете использовать встроенную функцию STRING_SPLIT, доступную только под уровнем совместимости 130. Если уровень совместимости базы данных ниже 130, SQL Server не сможет найти и выполнить функцию STRING_SPLIT. Вы можете изменить уровень совместимости базы данных, используя следующую команду:

ALTER DATABASE DatabaseName SET COMPATIBILITY_LEVEL = 130

Синтаксис

STRING_SPLIT ( string , separator )

см. Документацию здесь

0
задан greyskies 17 January 2019 в 00:18
поделиться

4 ответа

Это происходит потому, что если значение делится на 6, оно также четное и делится на 3. Чтобы исправить это, сначала нужно проверить 6 и проверить только 2 и 3 в ветви else

for(var i = 1; i <= 100; i++) {
  if(i % 2 === 0 && i % 3 === 0) {
    console.log("The number " + i + " is divisible by two and three");
  }
  else {
      if(i % 2 === 0) {
        console.log("The number " + i + " is even" );
      } else {
        if(i % 3 === 0) {
          console.log("The number " + i + " is divisible by three");
        }
        else {
          console.log("The number " + i + " is odd");
        }
      }
  }
} 
0
ответ дан SergGr 17 January 2019 в 00:18
поделиться

Порядок ваших условных заявлений важен. Приведенный ниже код должен дать ожидаемый результат.

for(var i = 1; i <= 100; i++) {
    if(i % 2 === 0 && i % 3 === 0) {
       console.log("The number " + i + " is divisible by two and three");
    }   
    else if(i % 3 === 0) {
        console.log("The number " + i + " is divisible by three");
    }
    else if(i % 2 === 0) {
        console.log("The number " + i + " is even" );
    } 
   else {
        console.log("The number " + i + " is odd");
    }
}
0
ответ дан kader 17 January 2019 в 00:18
поделиться

Множество if условий удовлетворены, следовательно, вы получаете повторения. Попробуйте немного передвинуть if-else: -

if (i % 2 === 0 && i % 3 === 0) {
    console.log("The number " + i + " is divisible by two and three");
} else if (i % 3 === 0) {
    console.log("The number " + i + " is divisible by three");
} else if (i % 2 === 0) {
    console.log("The number " + i + " is even");
} else {
    console.log("The number " + i + " is odd");
}
0
ответ дан Kartik 17 January 2019 в 00:18
поделиться

Ваши расчеты того, когда печатать вывод, являются независимыми, т.е. они выполняют один за другим. Следовательно, вы получите несколько строк вывода.

Чтобы реализовать требования «вместо», вам необходимо изменить их порядок и связать их:

for (var i = 1; i <= 100; i++) {
    if (i % 2 === 0 && i % 3 === 0) {
        console.log("The number " + i + " is divisible by two and three");
    } else if (i % 3 === 0) {
        console.log("The number " + i + " is divisible by three");
    } else if (i % 2 === 0) {
        console.log("The number " + i + " is even" );
    } else {
        console.log("The number " + i + " is odd");
    }
}
0
ответ дан dave 17 January 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: