97 lines
3.3 KiB
Markdown
97 lines
3.3 KiB
Markdown
![]() |
---
|
|||
|
id: 587d7b7e367417b2b2512b21
|
|||
|
title: Використання декількох умовних (трикомпонентних) операторів
|
|||
|
challengeType: 1
|
|||
|
videoUrl: 'https://scrimba.com/c/cyWJBT4'
|
|||
|
forumTopicId: 301179
|
|||
|
dashedName: use-multiple-conditional-ternary-operators
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
У попередньому завданні ви використовували одинарний умовний оператор. Ви також можете їх об'єднати для того, щоб перевірити декілька умов.
|
|||
|
|
|||
|
Наступна функція використовує `if`, `else if`, а також `else` твердження, щоб перевірити декілька умов:
|
|||
|
|
|||
|
```js
|
|||
|
function findGreaterOrEqual(a, b) {
|
|||
|
if (a === b) {
|
|||
|
return "a and b are equal";
|
|||
|
}
|
|||
|
else if (a > b) {
|
|||
|
return "a is greater";
|
|||
|
}
|
|||
|
else {
|
|||
|
return "b is greater";
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Вказану вище функцію можна переписати, використовуючи декілька умовних операторів:
|
|||
|
|
|||
|
```js
|
|||
|
function findGreaterOrEqual(a, b) {
|
|||
|
return (a === b) ? "a and b are equal"
|
|||
|
: (a > b) ? "a is greater"
|
|||
|
: "b is greater";
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Найкращою практикою вважають відформатування декількох умовних операторів таким чином, що кожна умова буде знаходитися в окремому рядку, як вказано вище. Використання декількох умовних операторів без правильних відступів може ускладнити читання вашого коду. Наприклад:
|
|||
|
|
|||
|
```js
|
|||
|
function findGreaterOrEqual(a, b) {
|
|||
|
return (a === b) ? "a and b are equal" : (a > b) ? "a is greater" : "b is greater";
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
# --instructions--
|
|||
|
|
|||
|
У функції `checkSign`, використовуйте декілька умовних операторів, дотримуючись рекомендованого формату, що використаний у `findGreaterOrEqual` - для того, щоб перевірити чи число додатнє, від'ємне або нуль. Функція має повернути `positive`, `negative` or `zero`.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`checkSign` має використовувати декілька умовних операторів
|
|||
|
|
|||
|
```js
|
|||
|
assert(/.+?\s*?\?\s*?.+?\s*?:\s*?.+?\s*?\?\s*?.+?\s*?:\s*?.+?/gi.test(code));
|
|||
|
```
|
|||
|
|
|||
|
`checkSign(10)` має повернути рядок `positive`. Зверніть увагу на те, що написання з великої літери - важливе
|
|||
|
|
|||
|
```js
|
|||
|
assert(checkSign(10) === 'positive');
|
|||
|
```
|
|||
|
|
|||
|
`checkSign(-12)` має повернути рядок `negative`. Зверніть увагу на те, що написання з великої літери - важливе
|
|||
|
|
|||
|
```js
|
|||
|
assert(checkSign(-12) === 'negative');
|
|||
|
```
|
|||
|
|
|||
|
`checkSign(0)` має повернути рядок `zero`. Зверніть увагу на те, що написання з великої літери - важливе
|
|||
|
|
|||
|
```js
|
|||
|
assert(checkSign(0) === 'zero');
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
function checkSign(num) {
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
checkSign(10);
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
function checkSign(num) {
|
|||
|
return (num > 0) ? 'positive' : (num < 0) ? 'negative' : 'zero';
|
|||
|
}
|
|||
|
```
|