Условная конструкция

Задача предиката — получить ответ на вопрос, но обычно этого недостаточно и нужно выполнить определенное действие в зависимости от ответа.

Напишем функцию, которая определяет тип переданного предложения. Для начала она будет отличать обычные предложения от вопросительных.

const getTypeOfSentence = (sentence) => {
  const lastChar = sentence.substr(-1); // простой способ извлечь последний символ
  if (lastChar === '?') {
    return 'question';
  }

  return 'normal';
}

getTypeOfSentence('Hodor');  // normal
getTypeOfSentence('Hodor?'); // question

if - инструкция. В скобках ей передается выражение-предикат, а затем описывается блок кода в фигурных скобках. Этот блок кода будет выполнен, только если предикат — истина.

Если предикат — ложь, то блок кода в фигурных скобках пропускается, и функция продолжает свое выполнение дальше.

В нашем случае следующая строчка кода — return 'normal'; — заставит функцию вернуть строку и завершиться.

Как видите, return может находиться где угодно в функции. В том числе внутри блока кода с условием.


Если в фигурных скобках после if содержится только одна строчка кода, то фигурные скобки можно не писать и сделать так:

const getTypeOfSentence = (sentence) => {
    const lastChar = sentence.substr(-1);
    if (lastChar === '?')
      return 'question';

    return 'normal';
}

console.log(getTypeOfSentence('Hodor'));  // => normal
console.log(getTypeOfSentence('Hodor?')); // => question

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

Задание

Реализуйте функцию getSentenceTone, которая принимает строку и определяет тон предложения. Если все символы в верхнем регистре, то это вопль — 'scream'. В ином случае — нормальное предложение — 'normal'.

Примеры вызова:

getSentenceTone('Hello'); // normal
getSentenceTone('WOW');   // scream

Алгоритм:

  1. Сгенерируйте строку в верхнем регистре на основе строки-аргумента с помощью toUpperCase.
  2. Сравните её с исходной строкой:

    • Если строки равны, значит, строка-аргумент в верхнем регистре.
    • В ином случае строка-аргумент не в верхнем регистре.

Определения

  • Условная конструкция — способ задать условие для выполнения кода. Например, if (x > 10) { ... }


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.