Вирішено Повернення до запуску програми jaime_ta_mere - OpenClassrooms
Питання ? Не хвилюйтеся, ми допоможемо вам !

Привіт, я роблю програму на C, і я хочу, щоб в кінці її відобразився вибір перезапустити програму або вийти з неї.
Тільки тут, я не знаю, як зробити перший варіант: поверніться до початку, я хотів би знати, чи є якийсь Goto, який ми могли б використовувати між кількома циклами ?
Будь ласка, як повернутися до початку моєї програми ?
синтаксис приблизно такий:
цикл програми
інструкції.
>
вибір кинути або продовжити
наперед дякую
Щоб повернутися до запуску програми, ви можете використовувати цикл do/while:
int вибір;
// інші змінні
printf ("Ви хочете почати спочатку? (1 = ТАК, 2 = НІ):");
scanf ("% d", & вибір);
В основному я створюю змінну, яка дорівнює нулю під час циклу, і коли ми натискаємо на quit, вона стає 1 ?
Я спробую цей крок
Цитата: Sirius88
Рішення, я б не називав це "оптом".
Тим паче, що зовсім не впевнений, що filouhb бачив вивчення персонажів (?).
Цитата: filouhb
В основному я створюю змінну, яка дорівнює нулю під час циклу, і коли ми натискаємо на quit, вона стає 1 ?
Я спробую цей крок
Це правильно. Повідомте нам новини !
Цитата
Тільки невелике роз'яснення, яке я хотів надати:
Goto справді існує мовою C, але ДУЖЕ настійно не рекомендується, оскільки це вплине на читабельність програми. Я дав би вам документ, що підтверджує це, але він дуже довгий, і це все, що вам слід пам’ятати.
(І так, у мене теж не раз було спокуса використовувати його.).
В іншому випадку я був би на думку скласти великий цикл, який включає всю вашу програму (після оголошення руки, звичайно), і якщо користувач бажає вийти, ви керуєте таким чином, що ваш цикл стає неможливим. Стилю:
Гаразд, я не надто звертав увагу на помилки, але я зазвичай використовую цей метод. Це, мабуть, не найкраще.
Ваш код можна трохи спростити, уникаючи тотологій:
Таким чином, ми вже уникаємо змінної "value" (яка також не була оголошена, але вона є хитрою, оскільки ви вказуєте, що ви написали цей код у 2-2 ^^), а також двох непотрібних тестів (але я, як подарунок, роблю ще два я замість xD).
Крім того, ми змушуємо користувача вводити правильні дані (ніколи не довіряйте введенню користувачем), а також дозволяє використовувати дуже поширену систему O/N, якщо ви кодуєте в консолі.
Крім того, scanf - це дуже погана функція, я вважаю за краще створювати власну функцію за допомогою getchar і буфера дампа, але, привіт, справа не в цьому.
Після цього це найкращий метод, який я думаю (ну, робити все-таки краще в будь-якому випадку, я кажу про принцип циклу), враховуючи те, що goto потрібно заборонити (і справді досить нудно читати, де мій погляд зору очевидно).
@axelink: scanf не так вже й погано, якщо ми перевіримо його відгуки та звернемо увагу.
В іншому випадку, я вважаю, що поставити універсал - це лише поліпшення, щоб він не витрачав занадто багато пам'яті. В іншому випадку я не вважаю перерву перехідною, тому не рекомендував би її використовувати.