Почему не работает return? Привет!
Взялся за задание, которое нашел в просторах сети и я [s]немного[/s] очень сильно запутался.
Задание: сделать терминал управления зоомагазином, использовать классы.
Мой вопрос: почему оператор return не возвращает к функции, которая вызвала функцию, которая вызвала return? (Как закрутил, извиняюсь)
Забыл написать в чем ошибка: программа доходит до функции input(); и закрывается, хотя должна вернуться обратно в меню. #include
using namespace std;
const int SIZE = 10;
class zoo {
public:
char name[25];
char animal[25];
int cost;
void input();
}anim[SIZE];
void manager(), show(), add_animal();
int main() {
cout > sea;
switch (sea)
{
case 1: manager(); break;

}
system("pause");
return 0;
}
void manager(){
cout > choise;
switch (choise)
{
case 1: add_animal();
break;
case 2: show(); break;
}
return;
}
void add_animal(){
int i;
for (i = 0; i > animal;
cout > name;
cout > cost;
return;
}
void show(){
int i;
for (i = 0; i < SIZE; i++){
if (anim[i].animal){
cout << "\nAnimal\t" << anim[i].animal <<
"\nName\t" << anim[i].name <<
"\nCost\t" << anim[i].cost << endl;
}
}
return;
}

21 Авг 2019 в 07:08
181 +1
0
Ответы
1

Проблема здесь в том, что при условии if (i == SIZE) в функции add_animal(), вы не должны использовать break, так как это выходит из цикла, не проверяя последнее условие. Вместо этого вы можете просто выйти из функции с помощью return. Попробуйте изменить ваш код следующим образом:

void add_animal(){
int i;
for (i = 0; i < SIZE; ++i){
if (!anim[i].animal) break;
}
if (i == SIZE){
cout << "Its full";
return;
}
anim[i].input();
return;
}

Теперь программа должна корректно возвращаться в меню после выполнения функции add_animal().

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 887 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир