FizzBuzz

а где физбаз? =)

for (let i = 1; i <= range; i++) {

    if (i % firstNumber === 0 && i % secondNumber === 0){
        console.log(i + ` Делится на ${firstNumber} и на ${secondNumber} FizzBuzz `)
    } else if (i % secondNumber === 0) {
        console.log(i + ` Делится на ${secondNumber} fizz`)
    } else if (i % firstNumber === 0) {
        console.log(i + ` Делится на ${firstNumber} buzz`)
    } else {
        console.log(i + ' Не делится')
    }

}

Смысл тотже )

Добавьте, пожалуйста, в программу обучения “Знакомство с JS” описание условия “else if”. Если бы знал, решил бы сразу FizzBuzz.

Спасибо, мы учтём ваше мнение.

В верхнем условии можно использовать число 15,привести условие к общему делителю.

Да, если бы знать про else if раньше))

Спасибо всем, кто помог…

var number = 15;
var taskResult;

if (number%15==0)
{console.log (taskResult=‘FizzBuzz’);}

else if (number%5==0) {

console.log (taskResult=‘Buzz’);}

else if (number%3==0) {

console.log (taskResult=‘Fizz’);

} else {

console.log (taskResult=number);}

я сделал такой вот вариант

var number = 15;
var taskResult;

if (number % 3 === 0) {
console.log(taskResult = ‘Fizz’);
}

if (number % 5 === 0) {
console.log(taskResult = ‘Buzz’);
}

if (number % 3 === 0 && number % 5 === 0) {
console.log(taskResult = ‘FizzBuzz’);
}

if (number % 3 != 0 && number % 5 != 0) {
console.log(taskResult = number);
}

у меня почти такое же решение

var number = 18;
var taskResult;

if(number % 3 == 0 && number % 5 == 0) {
taskResult = ‘FizzBuzz’;
} else if (number % 5 == 0) {
taskResult = ‘Buzz’;
} else if (number % 3 == 0) {
taskResult = ‘Fizz’;
} else {
taskResult = number;
}
console.log (taskResult);

Методом тыка получилось пройти испытание, но как оно работает не совсем понял, потому что по моей логике должно было быть ровно наоборот :slight_smile:

   taskResult = 'FizzBuzz';
   if (number % 5) {
    taskResult = 'Fizz';
  } if (number % 3) {
    taskResult = 'Buzz';
  } if (number % 5 && number % 3) {
    taskResult = number;
  }

var number = 15;
var taskResult;

if (number % 3 === 0) {
taskResult = ‘Fizz’;
console.log(taskResult);
}

if (number % 5 === 0) {
taskResult = ‘Buzz’;
console.log(taskResult);
}

if (number % 3 === 0 && number % 5 === 0) {
taskResult = ‘FizzBuzz’;
console.log(taskResult);
}

if (number % 3 !== 0 && number % 5 !== 0) {
taskResult = number;
console.log(number);
}

Примечание есть в задании!

Чтобы проверить, делится ли одно число на другое без остатка, используйте оператор «остаток от деления». Он записывается в виде знака процента (%) и возвращает остаток от деления чисел. Работает это так:

12 % 5; // Вернёт 2
27 % 3; // Вернёт 0
13 % 3; // Вернёт 1

Решение

number = 15;
var taskResult;

if((number % 3 == 0) || (number % 5 == 0)){
  if(number % 3 == 0){
      taskResult ='Fizz';
  }
  if(number % 5 == 0){
    taskResult = 'Buzz';
  }
  
  if((number % 3 == 0) && (number % 5 == 0)){
    taskResult = 'FizzBuzz';
  }
  
}else{
  taskResult = number;
}

if ( number % 3 === 0 && number % 5 > 0) {
taskResult =‘Fizz’;
}
if (number % 5 === 0 && number % 3 > 0 ){
taskResult =‘Buzz’;
}
if(number % 3 == 0 && number % 5 == 0){
taskResult = ‘FizzBuzz’;
}
if (number % 3 >= 1 && number % 5 >= 1){
taskResult = number;
}

Код

var number = 15;
var taskResult;

if (number % 3 == 0 && number % 5 == 0) {
taskResult = ‘FizzBuzz’;
} else if (number % 3 == 0 && number % 5 !== 0) {
taskResult = ‘Fizz’;
} else if (number % 3 !== 0 && number % 5 == 0) {
taskResult = ‘Buzz’;
}
else {
taskResult = number;
}

1 лайк

var number = 15;
var taskResult;
taskResult = number;

if (number % 3 === 0) {
taskResult = ‘Fizz’;
}
if (number % 5 === 0) {
taskResult = ‘Buzz’;
}
if (number % 3 === 0 && number % 5 === 0) {
taskResult =‘FizzBuzz’;
}

var number = 15;
var taskResult = '';

if (number % 3 === 0) {
  taskResult += 'Fizz';
  }
if (number % 5 === 0) {
  taskResult += 'Buzz';
  }
if (number % 3 !== 0 && number % 5 !== 0) {taskResult = number;}
1 лайк

У меня получился довольно компактный код, и при этом в рамках полученных в этой главе знаний, поэтому решил поделиться кодом).

var number = 15;
var taskResult = number;

if (!(number % 3)) {
taskResult = ‘Fizz’;
}

if (!(number % 5)) {
taskResult = ‘Buzz’;
}

if ((!(number % 3)) && (!(number % 5))) {
taskResult = ‘FizzBuzz’;
}

2 лайка

Народ проверьте пожалуйста, я весь мозг сломал! Интересует конкретно строчка с FizzBuzz. Остальное вроде работает корректно

let number = 30;
let taskResult = number;

if (number % 3 == 0 && number % 5 == 0) {
taskResult = “FizzBuzz”
};

if (number % 3 == 0) {taskResult = “Fizz”};

if (number % 5 == 0) {taskResult = “Buzz”};

Выяснил, что если передвинуть строку с FizzBuzz в конец кода, все работает. Почему???

Насколько я понял - чем сложнее условие - тем ниже оно должно находиться. Видимо программа срабатывает так: если число на 3 и на 5 делится без остатка - первое верно, потом идет дальше - второе верно и оно перезаписывает первое, затем третье тоже верно и оно перезаписывает второе. В итоге у тебя должно выдаваться “Buzz”. Могу ошибаться, конечно, тоже сталкивался с такой проблемой.

1 лайк

у меня наоборот, выполняется если ‘FizzBuzz’ находится вверху!

let number = 15;
let taskResult;

if (number % 3 == 0 && number % 5 == 0){
taskResult = ‘FizzBuzz’;
} else if (number % 5 == 0){
taskResult = ‘Buzz’;
} else if ( number % 3 == 0){
taskResult = ‘Fizz’;
}else{
taskResult = number;
};