A. Замяна на оператора break с други оператори. Вторият код по-долу е демонстрационен пример как може операторът break да се замени с едно присвояване, j = n;, което прекратява изпълнението на цикъла. На практика, при един друг програмист, даже от същия програмен колектив, и при една по-комплексна програма, това присвояване би породило доста размишления, защо е направено и има ли то някакъв друг смисъл.
Пример с използване на оператора break:
//
usage of break statement
int
isPrime = 1;
// assume n is prime
for(int
j = 2; j < n/2; j++) // divide by all integers from 2 to
n/2
{
if (n%j == 0)
// if evenly divisible,
{
isPrime = 0;
// n is not a prime
break;
// no point in looping again
}
}
Един доста конфузен пример - замяна на оператора break:
//
usage of if-else construction
int
isPrime = 1;
// assume n is prime
for(int
j = 2; j < n/2; j++) // divide by all integers from 2 to
n/2
{
if (n%j == 0)
// if evenly divisible,
{
isPrime = 0;
// n is not a prime
j = n;
// increase j not the cycle to be repeated
}
}
B. Замяна на оператора continue с други оператори. Вторият код по-долу е демонстрационен пример как може операторът continue да се замени с конструкцията if-else. На практика, и двата кода са разбираеми, но при втория се изпълняват и следващите два оператора cout << "\nDo another (y/n)? "; и cin >> ch;.
Пример с използване на оператора continue:
float
dividend, divisor;
char
ch;
do
{
cout << "Enter dividend: ";
cin >> dividend;
cout << "Enter divisor: ";
cin >> divisor;
if (divisor == 0)
// if user error,
{
cout << "Divisor can't be zero\n";
continue;
// go back to top of loop
}
cout << "Quotient is " << dividend / divisor;
cout << "\nDo another (y/n)? ";
cin >> ch;
} while(ch != 'n');
Пример с използване на конструкцията if-else:
float
dividend, divisor;
char
ch;
do
{
cout << "Enter dividend: ";
cin >> dividend;
cout << "Enter divisor: ";
cin >> divisor;
if (divisor == 0)
// if user error,
cout << "Divisor can't be zero\n";
else
// else calculate the quotient,
cout << "Quotient is " << dividend / divisor;
cout << "\nDo another (y/n)? ";
cin >> ch;
} while(ch != 'n');
Литература
[1] Robert Lafore; C++ Interactive Course. Waite Group Press, Macmillan Computer Publishing, 1996.
Автор: Проф. Процесор Аритметиков
[ това е материал от брой 15 от януари 2008 г. на списание "Коснос" www.kosnos.com ]
Keywords: С++,
OOP programming , C++ , Classes , Inheritance , Reusability , Creating
New Data Types , Polymorphism and Overloading
Ключови думи: клас
, обект, обектно ориентирано програмиране , полиморфизъм