Помогни ни да направим Uroci.net по - богат! Добави урок

C++ част.3 (Изрази и оператори)

C++ » C++
fix3d   трудност:    видян: 62853



3.19. Операторът continue

Операторът continue предизвиква прекратяване на текущата итерация на най-вътрешния оператор while, do или for. В случаите, когато използуваме циклите while и do, изпълнението продължава с изчисляването на управляващия израз. Когато използуваме цикъла for изпълнението продължава с пресмятането на expression-2. За разлика от оператора break, който прекратява изпълнението на цикъла, операторът continue прекратява изпълнението само на текущата итерация. Например, следващият програмен фрагмент чете от текстов файл по една дума. Обработва се всяка дума, която започва с подчертаващо тиренце; иначе се прекратява текущата итерация:

while ( cin >> inBuf ) {
if ( inBuf[0] != ‘_’ ) continue; // terminate iteration// ...
process string ...



3.20. Операторът goto

Ако операторите break и continue не съществуваха, програмистът би имал нужда от средство, чрез което да излиза вън от циклите или от оператора switch. Операторът goto предлага една такава възможност, но тя рядко се използува сега в програмирането.

Операторът goto осъществява безусловно предаване на управлението в програмата. Операторът, на който се предава управлението се отбелязва с етикет. Етикетът и goto операторът трябва да се намират в една и съща функция. Операторът goto има следния синтаксис:

goto label;

където label е дефиниран от потребителя идентификатор. Един етикет може да бъде използуван само за отбелязване на оператора, на който се предава управлението, и трябва да завършва с двуеточие.

Етикетът не може да бъде написан непосредствено преди затваряща фигурна скоба. Един типичен метод за избягване на това ограничение е добавянето на празен оператор след етикета. Например,

end: ; // null statement}

Операторът goto не може да прескача явна или неявна инициализационна дефиниция на променлива, освен ако тази дефиниция принадлежи на някакъв блок и се прескача целия блок. Следващата програма, например, не е правилна

#include "IntArray.h"extern int getValue();
extern void processArray( IntArray& );
main() {
int sz = getValue();
if ( sz <= 0 )
goto end; // illegal
jumpIntArray myArray( sz );
procassArray( myArray );
end;
}

myArray представя един явен инициализатор - конструкторът на класа IntArray.

Упражнение 3-21. Напишете отново main() така, че да бъде правилна.



Страници: «9 10 11 12

Сподели урока:



Коментари (1)

Zemoch на 18.01 2011 в 17:30ч.
Мнооого дълъг урок ! По полезно щеше да е да се направят 10тина теми от това вместо една наблъскана догоре.... Иначе полезно ама много хубаво( на едно място :) ) не е на хубаво !

Регистрирайте се, за да добавите коментар


Калдейта Ком ЕООД - © 2003-. Всички права запазени.
Препоръчваме: IT Новини