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

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

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



3.17. Операторът do


Представете си, че сте били помолени да напишете една интерактивна програма, която превръща мили в километри. Програмата би могла да изглежда така:

int more = 1; // dummy value to start loop

while ( more ) {
val = getValue();
val = convertValue(val);
printValue(val);
more = doMore();
}

Проблемът тук е, че изразът, свързан с управлението на цикъла е поставен в тялото му. При циклите while и for, обаче, тялото на цикъла не се изпълнява никога, освен ако управляващият израз няма стойност истина. Това означава, че програмистът трябва да даде първоначална стойност за започване на изпълнението на цикъла. Цикълът do гарантира, че тялото му винаги ще бъде изпълнено поне веднъж. Не е необходимо това да бъде осъществявано принудително.

Цикълът do има следния синтаксис:

do statement; while ( expression );

Операторът statement се изпълнява преди пресмятането на израза exprssion. Ако този израз има стойност лъжа изпълнението на цикъла do приключва. Нашата програма сега изглежда така:

int more;
do {
val = getValue();
val = convertValue(val);
printValue(val);
more = doMore();
while ( more );

Оператори за скок

Тези оператори безусловно предават управлението на програмата във вътрешността на дадена функция. Към тях се причисляват операторите break, continue и goto. Следващият раздел разглежда тези оператори последователно.


3.18. Операторът break

Операторът break прекратява изпълнението на най-вътрешния оператор while, do, for или switch. Изпълнението продължава от оператора, записан непосредствено след прекъснатия оператор. Например, нека на IntArray е необходима член-функция, която преглежда масив като търси първата поява на дадена стойност. Ако тя е намерена, функцията връща индекса й; иначе връща -1. Това се реализира по следния начин:

#include "IntArray.h"
IntArray::search( int Val ) {
// val in ia?
return index;
otherwise, -1
int loc = -1;
for ( int i = 0; i < size; ++i )
if ( val == ia[ i ]) {
loc = i; break;
}return loc;
}

Няма причина изпълнението на цикъла да продължава ако стойността бъде намерена. Затова операторът break прекъсва изпълнението на цикъла. Изпълнява се оператора return, записан непосредствено след цикъла for.


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

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



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

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

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


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