# Введення і виведення даних

Певною мірою все програмування зводиться до перекладання значень з однієї змінної в іншу.

## console.log та console.put

Для виведення даних на консоль в IDE Ш++ є дві функції. Наступний код демонструє різницю між ними. Запустіть його, щоб побачити як це працює.

```javascript
console.log("переводжу курсор");
console.log("на наступний рядок");

console.put("залишаю курсор ");
console.put("у тому ж рядку");
```

## prompt

Функція `prompt` потрібна, щоб отримати від користувача дані (вік, число, ім'я тощо). Наприклад:

```javascript
let result = prompt("хей, напиши якесь число");
```

Функція виводить модальне вікно з полем для вводу. Також у вікні виводиться напис, який ми передали до функції у дужках.

![Отак це модальне вікно виглядає](https://2283236175-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUxylxLjNGD6e20lNBE%2F-MhDSvbEPfQ04uhI_zy3%2F-MhDUtViEFV9kf_CWjUq%2Fimage.png?alt=media\&token=1f309431-59c6-41e0-bc8b-9e0d7dbfc65d)

Користувач має або щось ввести та клікнути **ОК**, або ж скасувати через "Відміна". Можна не клікати мишею, а тиснути на клавіатурі Enter або Esc.

`prompt` повертає те, що людина введе до модального вікна. **Увага:** повернені з `prompt` дані  — це [рядок](https://learn.javascript.ru/types#stroka)**.**  А якщо введення було скасовано — повертається [null](https://learn.javascript.ru/types#znachenie-null). У задачах ми не фокусуватимемось на варіантах з `null`, тож не переживайте :)

⚠️ Зауважте, що у прикладі вище ми *в одному рядку й* викликаємо `prompt`, і  записуємо його результат до змінної`result`. Інакше як потім використовувати те значення, яке ввела людина? Його обов'язково треба кудись запам'ятати.

```javascript
let years = prompt("Скільки вам років?");
console.log("Вам " + years + " років!");
```

У прикладі зверху ми в першому рядку робимо три речі:

1. Створюємо змінну `years`
2. Викликаємо функцію `prompt`
3. Записуємо до `years`те, що ввів користувач у вікно `prompt`

Запустіть цей код та пограйтесь із ним :)

## +prompt()

Пам'ятаєте, що `prompt` зберігає введене як [рядок](https://learn.javascript.ru/string)? Тепер, щоб краще зрозуміти різницю між рядками та числами, спробуйте позапускати ці дві версії коду.

```javascript
let n = prompt("введи число");
console.log(n + 1);
```

```javascript
let n = +prompt("введи число");
console.log(n + 1);
```

Спробуйте вводити не число, а текст. І подивіться, що з'явиться у консолі. Також вам стане в пригоді погуглити, що таке `NaN`.

Спробуйте замість магічного `+prompt` скомбінувати команду `parseInt` (з попереднього розділу) зі звичайним `prompt`— так теж можна :)

{% hint style="info" %}
Для чисел юзайте **`+prompt`**

Для всього іншого: *просто* **`prompt`**
{% endhint %}

Як це працює, почитаєте в розділі про типи даних.

## Додаткові матеріали

[Взаємодія: alert, prompt, confirm](https://uk.javascript.info/alert-prompt-confirm)

## Обов'язкові задачі

{% content-ref url="input-output/get-next-number" %}
[get-next-number](https://shpp.gitbook.io/zero/tutorials/input-output/get-next-number)
{% endcontent-ref %}

{% content-ref url="input-output/addition" %}
[addition](https://shpp.gitbook.io/zero/tutorials/input-output/addition)
{% endcontent-ref %}

*Виникли питання або труднощі?* [*Зверніться за допомогою до Ш++.*](https://shpp.gitbook.io/zero/arrangements/support)

## **Чи можна йти до** [**наступної теми**](https://shpp.gitbook.io/zero/tutorials/if-else)**?**

Звичайно, якщо ви можете самостійно розв'язувати запропоновані задачі, не підглядаючи до чужого коду
