> For the complete documentation index, see [llms.txt](https://shpp.gitbook.io/zero/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shpp.gitbook.io/zero/tutorials/input-output.md).

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

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

## console.log та console.put

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

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

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

## prompt

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

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

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

![Отак це модальне вікно виглядає](/files/-MhDUtViEFV9kf_CWjUq)

Користувач має або щось ввести та клікнути **ОК**, або ж скасувати через "Відміна". Можна не клікати мишею, а тиснути на клавіатурі 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="/pages/HmBzkQyPNpsrrRaV22Fc" %}
[Наступне число](/zero/tutorials/input-output/get-next-number.md)
{% endcontent-ref %}

{% content-ref url="/pages/uIq7zhxKWc85o1HkuC5m" %}
[Сума двох чисел](/zero/tutorials/input-output/addition.md)
{% endcontent-ref %}

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

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

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://shpp.gitbook.io/zero/tutorials/input-output.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
