Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператор goto

Оператор continue

Оператор break

Інші оператори переходу

В мові С++ існує кілька операторів переходу. Один з них, break, ми вже зустрічали у складі оператора switch. Однак оператори переходу можна використовуватитакож з іншою метою. Оператор continue можна використовувати в циклах, а оператора goto взагалі рекомендується уникати. Розглянемо ці оператори детальніше.

Оператор break здійснює вихід з циклу подібно до того, як він здійснює вихід з конструкції switch. Наступним оператором, що виконується після break, буде перший оператор за межами циклу.

Далі приведений приклад програми, яка використовує даний оператор. Програма зображає розподіл простих чисел.

#include <iostream>

using namespace std;

#include <conio.h>

int main()

{

const unsigned char WHITE=219; //білий колір для простих чисел

const unsigned char GRAY=176; //сірий колір для інших чисел

unsigned char ch;

 

for(int count=0;count<80*25-1;count++)

{ch=WHITE;

for(int j=2;j<count;j++)

if(count%j==0)

{ch=GRAY;

break;

}

cout>>ch;

}

getch();

return 0;

}

 

Звернемо увагу на таке: оператор break здійснює вихід лише з того циклу, до тіла якого входить, але не з зовнішнього циклу, в який вкладений цей внутрішній цикл.

Програма використовує два символи з розширеної таблиці кодів ASCII для виводу символів-прямокутників, «зафарбованих» сірим або білим кольором. Для цих символів ми використовуємо тип unsigned char, оскільки тип char може зберігати лише числа, не більші за 127, тоді як беззнаковий – до 255.

 

Оператор break здійснює вихід з циклу. Але можуть виникнути ситуації, коли при виконанні певної умови необхідно не вийти з файлу, а достроково повернутися до його початку. З цією метою використовується оператор continue. Строго кажучи, він здійснює перехід на фігурну дужку, яка завершує тіло циклу, звідки відбувається звичайний перехід на початок циклу.

Далі приведено приклад програми, що використовує оператор continue. Це модифікація однієї з попередніх програм, виправлена так, щоб виключити ділення на 0.

#include<iostream>

using namespace std;

int main()

{long dividend,divisor;

char ch;

do

{

cout<<”dividend=”;cin>>dividend;

cout<<”divisor=”;cin>>divisor;

if (divisor==0)

{cout<<”dilenna na 0”<<endl;

continue;

}

cout<<”chastka=”<<dividend/divisor;

cout<<”ostacha=”<<dividend%divisor;

cout<<”\ncontinue?(y/n)”;

cin>>ch;

}

while (ch!=’n’));

return 0;

}

 

 

Як правило програмістів, особливо початківців, просять не зловживати оператором goto, а то й зовсім без нього обійтися. Тим не менше, такий оператор в С+= є і працює він за звичайною схемою:

goto SystemCrash;

SystemCrash:оператор;

Спеціально описувати мітку, як це прийнято в Паскалі, непотрібно.

 

<== предыдущая лекция | следующая лекция ==>
Цілі величини в якості булевих | Питання. Операції відношення призначені для порівняння двох величин, тобто для перевірки їх на відношення «рівне»
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 320; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.