Найти тему
Tech Mahal

Как решить задачу FizzBuzz на JavaScript

Задачка взята из подборки задач из книги Marijn Haverbeke "Eloquent Javascript" (2nd). Для понимания нужно обладать базовыми знаниями синтаксиса языка JavaScript и представлением как работают языки программирования. Для более вдумчивого осмысления материала, я предлагаю включить музыкальное сопровождение, которое я разместил в конце этой задачки. И так приступим!

1. FizzBuzz

Условие задачи такое. Написать программу, которая выводит через console.log все числа от 1 до 100, с двумя исключениями. Для чисел, нацело делящихся на 3, она должна выводить ‘Fizz’, а для чисел, делящихся на 5 (но не на 3) – ‘Buzz’.Когда сумеете – исправьте её так, чтобы она выводила «FizzBuzz» для всех чисел, которые делятся и на 3 и на 5.

Мое решение:

Подсмотрев самое короткое решение, и поняв его смысл, я сам написал по аналогии свое решение:

-2

В данном случае используется короткая форма условия if по форме (условие) ? [true] : [false] - то есть, что будет выведено при условии true, а что при условии false.

При помощи знака +, конкатенация строк, вы склеиваем две строки. Вторая строка выводит нам ничего или Buzz при выполнении условия.

Если ни одно их условий не выполниться, тогда просто напечатается i. Это можно сделать при помощи оператора ИЛИ ( || ) - (дизъюнкция). Это оператор короткого замыкания. Это означает, что если первое значение является истинным значением, оно немедленно вернет это первое значение, другими словами, если первый операнд является истинным в ИЛИ || оператор, то другой операнд не будет оцениваться, поэтому JavaScript даже не взглянет на него.

Ну а я пойду медитировать

-3