2016-02-18 3 views
0

Напишите javascript программу, которая отображает числа от 10 до 100. Но для кратных 4-х печатных «Пенни» вместо числа и для кратных 6-ти печатных изданий «Леонард». Для чисел, кратных как 4, так и 6 печатать «Bazzinga»похожее на FizzBuzz с завихрением

Я знаю, как сделать две части, которые пытаются напечатать 6 и 4;

function baZzinga (number) { 
    for (var number = 10; number <= 101; number++) 
if(number % 4 == 0) { 
console.log("penny"); 
} 
else if (number % 6 == 0) { 
console.log("Leonard"); 
} else if (not sure what goes here) { 
help help help 
} else { 
console.log(number"); 
} 
+2

Сначала проверьте условие && '** **. – Pointy

ответ

0

Вы хотите сначала состояние и состояние. Попробуйте эту

var result = document.getElementById("result"); 
 

 
function baZzinga (number) { 
 
    for (var number = 10; number <= 101; number++) { 
 
     if (number % 4 == 0 && number % 6 == 0) { 
 
      result.innerHTML += "Bazinga"; 
 
     } 
 
     else if(number % 4 == 0) { 
 
      result.innerHTML += "penny"; 
 
     } 
 
     else if (number % 6 == 0) { 
 
      result.innerHTML += "Leonard"; 
 
     } 
 
     else { 
 
      result.innerHTML += number; 
 
     } 
 
    } 
 
} 
 

 
baZzinga()
<p id="result"></p>

Я изменил console.log к result.innerHTML, потому что я хотел показать его в сниппета.

0

У меня есть несколько комментариев к вашему коду - конструктивная критика, я надеюсь! Во-первых, вам не нужен параметр number в вашей функции bazzinga. Затем отступ от кода, который вы опубликовали, затрудняет чтение. Наконец, вы должны почти всегда использовать === вместо ==. Тесты === для строгого равенства, тогда как == сначала пытается сделать некоторые преобразования типов (и поэтому может привести к неожиданным результатам). См. the official docs.

Ответьте на вопрос: сначала проверьте на делимость на 6 И 8. Таким образом, он отменяет отдельные случаи. Я считаю, что вы хотите что-то вроде этого:

function bazzinga() { 
    for (var number = 10; number <= 100; number++) { 
    if (number % 4 === 0 && number % 6 === 0) { 
     console.log("Bazzinga"); 
    } else if (number % 4 === 0) { 
     console.log("Penny"); 
    } else if (number % 6 === 0) { 
     console.log("Leonard"); 
    } 
    } 
} 
0

Вот решение, используя формат, который вы размещены:

for (var number = 10; number <= 100; number++) { 
    if(number % 4 === 0 && number % 6 === 0){ 
     console.log("bazzinga"); 
    } else if(number % 4 === 0) { 
    console.log("penny"); 
    } else if (number % 6 === 0) { 
    console.log("Leonard"); 
    } else { 
    console.log(number); 
    } 
} 

Или использовать тройной оператор, чтобы быть еще более лаконичным!

for (var i = 10; i <= 100; i++){ 
    var penny = i % 4 === 0; 
    var leonard = i % 6 === 0; 
    console.log(penny ? (leonard ? "bazzinga" : "penny"): leonard ? "leonard" : i); 
} 
0
function process_num(num) { 
    return num % 4 == 0 ? num % 6 == 0 ? "Bazzinga" : "Penny" : num % 6 == 0 ? "Leonard" : num; 
} 

for (x = 10; x <= 100; x++) { console.log(x + ': is ', process_num(x)) } 

Уплотненный троичный оператор лаконичности

Если она проходит наружный трехкомпонентную тест он делится на 4:

  • введите в вложен termary один, чтобы проверить, если Num также делится на 6 за приз BaZzinga !!
  • Если это не удается вызов Bazzinga, мы знаем, что ранее прошло делится на 4 теста так напечатать «копейку»

Failing внешнего тройного состояния, мы знаем, что не делятся на 4:

  • Введите вложенные тройные два, чтобы рассмотреть, если они делятся на 6. Если это так, напечатайте «Леонард».
  • Если это не так, как внешний (div на 4) и внутренний (div на 6), так что возвращайте число без изменений.

Теперь, когда логика содержится в функции, мы можем просто создать цикл for для итерации по требуемым числам, распечатывающим правильные значения.

Смежные вопросы