> 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/commands/swap.md).

# Обміняти змінні місцями

* Створити дві змінні з назвами <mark style="color:green;">first</mark> та <mark style="color:green;">second</mark> і покласти в них які-небудь числа.
* Вивести на консоль початкові значення цих змінних
* Написати команди, які обміняють вміст змінних місцями.
* Знову вивести значення змінних, щоб побачити, що обмін дійсно відбувся.

{% hint style="warning" %}
**Увага**: алгоритм має працювати однаково з будь-якими числами.
{% endhint %}

### **Частина 1**

Використати дві додаткові змінні.

### Частина 2

Використати одну додаткову змінну як проміжний контейнер при обміні.

### Частина 3 *(не обов'язково)*

Не використовувати додаткові змінні *(це може бути складно)*

**Підказка**: уявіть що у *вас* є два заповнені стакани + скільки завгодно порожніх.

![Уявіть, що змінні — стакани. Обміняти їх місцями — значить перелити пурпурне у лівий стакан, а помаранчеве — у правий.](/files/Lhtwb4tlyn7WxPGHDbjp)

От вам заглушка коду, щоб трохи спростити задачу:

```javascript
let first = 17;
let second = 66;
console.log(first);
console.log(second);
 
// тут треба дописати обмін

console.log(first);
console.log(second);
```

**Увага! Рішення типу такого:**

```javascript
let first = 17;
let second = 66;
console.log(first);
console.log(second);
 
first = 66; // це неправильно!
second = 17; // це неправильно!
 
console.log(first);
console.log(second);
```

... або якесь подібне, коли ви просто всередині коду вказуєте нові значення — це **НЕ** обмін змінних місцями і не вірне рішення цієї задачі.\
Відповідаючи й на часте питання: ні, також не те, що треба в ч.3. Все трохи складніше :wink:

**Програма має бути написана так, щоб працювала з будь-якими числами без змін у основному коді обміну.**

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