1-1 Программирование С++ / html / modules / 013 / content / content3
.htmlІнформатика — Теорія — Оператор безумовного переходу goto Автори
|
Контакти
|
Підсистема допомоги
|
Методичні вказівки
|
Анотація
|
Назад
ІнформатикаОператори передачі управління : Оператор безумовного переходу gotoЗміст курсу
Вступ
Теорія
Оператор розриву break
Оператор продовження continue
Оператор безумовного переходу goto
Оператор повернення з функціїї return
Поточна перевірка знань
Оператори передачі управління
Версія для друку
Оператор безумовного переходу goto Синтаксис : goto <мітка>;/* ... */<мітка> : <оператор>;. Оператор безумовного переходу goto передає управління безпосередньо на <оператор>, перед яким розташована <мітка>. Область дії мітки обмежена функцією, в якій вона визначена. Тому, кожна мітка повинна бути відмінною від інших в одній і тій самій функції. Також, неможливо передати управління оператором goto в іншу функцію. Оператор, перед яким розташована <мітка>, виконується зразу після виконання оператора goto. Якщо оператор з міткою відсутній, то компілятор видасть повідомлення про помилку. В свою чергу при появі концепції структурного програмування оператор goto піддався критиці, і його використання стало розглядатися як ознака поганого стилю програмування. Дійсно, надмірно широке використання goto робить структуру програми надмірно заплутаною, тому без особливої необхідності намагайтесь обходитися без оператора goto. Рекомендується або взагалі відмовитися від goto, або звести його використання до мінімума та дотримуватися наступного:
- не входити усередину блоку зовні;
- не входити усередину умовного оператора if;
- не входити усередину переключателю switch;
- не передавати управління усередину цикла.
Приклад 3. Використання оператора goto. Обчислення добутку від 2 до 3.
void main()
{
int n=3, f=1, i=2;
start:
if (i>n) goto end;
f *= i;
i++;
goto start;
end: ;
cout<<"\n f= "<<f;
}
Використання оператора goto в програмі аналогічно використанню цикла. Обчислення продовжується, якщо і меншеабо дорівнює 3. В результаті отримаємо 6.
© 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.uaРозроблено за допомогою LERSUS