Това са два примера от лекцията
Операторите за управление II част (Advanced Decisions)
..
(обратно в лекцията)
.
(съдържание)

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
Ключови думи: клас , обект, обектно ориентирано програмиране , полиморфизъм