Powrót do funkcji main z innej funkcji [C++]

Z nudów pisząc niewielki program w C++ natrafiłem na problem, a mianowicie jak po wykonaniu danej funkcji wrócić do funkcji main. W szkole mnie tego nie nauczyli, więc musiałem kombinować sam.

Yyy… o co Ci chodzi?

Załóżmy, że mamy taki program:

On wbrew pozorom jest bardzo prosty. Jest to kalkulator. I teraz co się w nim dzieje. Najpierw podaję dwie dowolne liczby, potem pojawia się menu. Ok. Chcę np. dodać dwie liczby do siebie. Wybieram więc 1, wciskam Enter, wynik pokazuje się na ekranie i w tym momencie program kończy swoje działanie. Ja zaś chciałem zrobić tak, aby po wykonaniu danej funkcji znowu pojawiło się menu. I wpadłem na pomysł jak to zrobić.

Edytujemy kod

Na początku wywalamy wszystkie polecenia getch(); z funkcji. Z takiego czegoś:

int dodawanie (int a, int b)
        {
                int c;

                c=a+b;

                cout << c << endl;
                getch();
        }

ma zostać takie:

int dodawanie (int a, int b)
        {
                int c;

                c=a+b;

                cout << c << endl;

       }

Ok. Teraz przechodzimy do głównej funkcji, czyli main.  Tam gdzie mamy zadeklarowane zmienne, czyli:

int a,b,d;

dopisujemy:

char x;
x=true;

Całość ma wyglądać tak:

int a,b,d;
char x;
x=true;

Ok. Teraz musimy zrobić pętle. A mianowicie przed:

cout << "Podaj dwie liczby" << endl;

piszemy:

while (x)
{

czyli ma być coś takiego:

while (x)
{
        cout << "Podaj dwie liczby" << endl;

        cin >> a;
        cin >> b;

        cout << endl;

Dobra. Teraz jedziemy na sam dół i przed return 0; dodajemy klamerkę:

{

Teraz pozostaje nam jeszcze napisać warunek. Ustawiamy się kursorem pomiędzy:

cin >> d;

oraz:

 switch (d)

i piszemy:

if (d==5)
        {
                x=false;
                cout << "Aplikacja zostala zamknieta" << endl;
                getch();

        }

Gotowe. Jeszcze do menu dopiszemy:

cout << "5.Zamknij" << endl;

Koniec edycji. Tak powinien wyglądać wyedytowany program:

 

Co się teraz dzieje?

Jakim teraz cudem program będzie działał? Znak x ma wartość true czyli prawda, więc pętla będzie się wykonywać. Jeżeli byśmy nie przypisali wcześniej do x tej wartości, pętla nadal by się wykonywała, ponieważ wszystkie operacje przebiegają pomyślnie. Jeżeli zaś na klawiaturze naciśniemy klawisz z numerem 5, to warunek przypisze znakowi x wartość false i w tym momencie pętla się nie wykona, ale warunek i aplikacja zostanie zamknięta.

Jeżeli macie jakieś pomysły piszcie w komentarzach.