Оператор goto в C / C ++
Оператор goto - это оператор перехода, который иногда также называют оператором безусловного перехода. Оператор goto может использоваться для перехода из любого места в любое место внутри функции.
Синтаксис :
Syntax1 | Синтаксис2 ---------------------------- метка перехода; | метка: . | . . | . . | . этикетка: | метка перехода;
В приведенном выше синтаксисе первая строка сообщает компилятору перейти к оператору, помеченному как метка, или перейти к нему. Здесь метка - это определяемый пользователем идентификатор, который указывает целевой оператор. Оператор, следующий сразу за меткой: - это оператор назначения. Метка «метка:» также может стоять перед меткой перехода; в приведенном выше синтаксисе.
Ниже приведены несколько примеров использования оператора goto:
Примеры:
- Тип 1 : в этом случае мы увидим ситуацию, аналогичную показанной в Syntax1 выше. Предположим, нам нужно написать программу, в которой нам нужно проверить, четное число или нет, и распечатать соответственно с помощью оператора goto. Программа ниже объясняет, как это сделать:
C
// C program to check if a number is
// even or not using goto statement
#include <stdio.h>
// function to check even or not
void
checkEvenOrNot(
int
num)
{
if
(num % 2 == 0)
// jump to even
goto
even;
else
// jump to odd
goto
odd;
even:
printf
(
"%d is even"
, num);
// return if even
return
;
odd:
printf
(
"%d is odd"
, num);
}
int
main() {
int
num = 26;
checkEvenOrNot(num);
return
0;
}
C ++
// C++ program to check if a number is
// even or not using goto statement
#include <iostream>
using
namespace
std;
// function to check even or not
void
checkEvenOrNot(
int
num)
{
if
(num % 2 == 0)
// jump to even
goto
even;
else
// jump to odd
goto
odd;
even:
cout << num <<
" is even"
;
// return if even
return
;
odd:
cout << num <<
" is odd"
;
}
// Driver program to test above function
int
main()
{
int
num = 26;
checkEvenOrNot(num);
return
0;
}
Выход:26 чётное
- Тип 2:: В этом случае мы увидим ситуацию, аналогичную показанной в Syntax1 выше. Предположим, нам нужно написать программу, которая печатает числа от 1 до 10 с помощью оператора goto. Ниже программа объясняет, как это сделать.
C
// C program to print numbers
// from 1 to 10 using goto statement
#include <stdio.h>
// function to print numbers from 1 to 10
void
printNumbers()
{
int
n = 1;
label:
printf
(
"%d "
,n);
n++;
if
(n <= 10)
label;
goto
}
// Driver program to test above function
int
main() {
printNumbers();
return
0;
}
C ++
// C++ program to print numbers
// from 1 to 10 using goto statement
#include <iostream>
using
namespace
std;
// function to print numbers from 1 to 10
void
printNumbers()
{
int
n = 1;
label:
cout << n <<
" "
;
n++;
if
(n <= 10)
label;
goto
}
// Driver program to test above function
int
main()
{
printNumbers();
return
0;
}
Выход:1 2 3 4 5 6 7 8 9 10
Недостатки использования оператора goto:
- Использование оператора goto крайне не рекомендуется, так как оно делает логику программы очень сложной.
- использование goto делает задачу анализа и проверки правильности программ (особенно тех, которые включают циклы) очень сложной.
- Использование goto можно просто избежать, используя операторы break и continue.
Эта статья предоставлена Harsh Agarwal. Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.