Оператор goto

Одним из самых противоречивых операторов практически любого языка программирования является оператор goto. Его не рекомендуется использовать, однако ни один учебник по программированию не обходится без его описания. Оператор goto позволяет перейти на метку, поставленную в некотором месте программы. Данный оператор не рекомендуется использовать, поскольку он нарушает принципы структурного программирования, другими словами, он нарушает последовательное исполнение команд программы и выполняет «прыжки» по коду. При написании любой программы можно обойтись без него, используя такие конструкции, как условия и циклы. Видимо, goto нужно изучить, чтобы осознать, что использовать его не стоит. Синтаксис оператора goto следующий:

МОЯ_МЕТКА: <команды>;

...

goto МОЯ_МЕТКА;

Пример:

int choice;

cout << "-------МЕНЮ-------\n";

cout << "1 - пойти на метку 1\n";

cout << "2 - пойти на метку 2\n";

cout << "Ваш выбор - ";

cin >> choice;

if (choice == 1) {

goto LABEL_1;

} else {

goto LABEL_2;

}

LABEL_1:

cout << "Вы пришли на метку 1\n";

system("pause");

exit(EXIT_SUCCESS);

LABEL_2:

cout << "Вы пришли на метку 2\n";

system("pause");

exit(EXIT_SUCCESS);

Нетрудно заметить, что определенная аналогия с метками может быть отмечена в операторе switch-case.

При помощи оператора goto можно усовершенствовать программу «Угадай число!» так, чтобы компьютер предлагал угадать число до тех пор, пока оно не будет угадано и подсчитывал количество попыток.

int number = rand() % 10;

int your_number;

int trials = 0;

cout << "Угадай число: ";

START:

cin >> your_number;

trials++;

if (number == your_number) {

cout << "Угадали!\n";

cout << "Число попыток: " << trials << "\n";

} else {

cout << "Не угадали!\n";

goto START;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: