www.amapro.cz & David Bazala [Programování]

Otevře webové stránky AmaPro


Otevře hlavní stránku společnosti AmaPro
Internetové stránky určené pro studenty středních a vysokých odborných škol.


amapro.cz/odkazy Projekt eliminuje vyhledávání klíčových slov na komerčních stránkách a v e-schopech.



Nový projekt AmaPro

 

break

 

Jedná se o iterační příkaz používající se pro rychlé ukončení nejvnitřnější neuzavřené smyčky. Přechodem na tento příkaz dochází k okamžitému opuštění cyklu. Příkaz se používá s dalšími příkazy, které obstarávají cyklické smyčky jako while, for, do, switch. Obdobným příkazem pro další možné větvení je continue.

 

Obecné schéma použití konstrukce break

 

cyklus

{

if(podmínka)break;

}

vyskok

 

Je-li vytvořen cyklus, který může být konečný např. for, nebo podmíněný (while, do) lze pomocí příkazu break kdykoliv započatý cyklus opustit a pokračovat dále v programu. Je nutné si uvědomit, že pokud běh programu narazí na instrukci break, nedojde již k vykonání žádného příkazu v těle cyklu. Příkaz break se často používá s příkazem if(podmínka) a ošetřuje tak případný vznik nekonečných smyček.

 

Specifika konstrukce break

 

cyklus

{

if(podmínka)

{

break;

         cout<<“nikdy neproběhne“;

}

}

vyskok

 

 

Tato programová konstrukce využití příkazu break demonstruje sílu příkazu break. Break způsobí okamžitý přesun běhu programu bezprostředně první příkaz za ukončovací závorkou těla cyklu. Příkazy za break nebudou nikdy vykonány. Překladač vás upozorní chybovou hláškou:  W8066 Unreachable code, Compiler warning

 

 

PŘÍKLAD break_1

int x=0;                                                  //alokuje a inicializuje x jako int

while(x<=10000)                                  //testovací podmínka pro while

  {                                                           //počátek bloku příkazů pro tělo cyklu

  cout<<x<<endl;                                 //výpis hodnoty x na monitor

  if(x==5)break;                                    //při splnění podmínky provede break pro while

  x++;                                     //změna proměnné, která je v testu while

  }                                                           //konec bloku příkazů pro tělo cyklu

cout<<"výskok ze smyčky";            //místo, které následuje bezprostředně za break

getchar();                                             //čekání na entr

return 0;                                                //opuštění konzolové aplikace

 

Program demonstruje využití příkazu break ve vazbě na while. V podmínce while je test proměnné x. Cyklus bude probíhat tak dlouho, pokud x bude menší než 10000. V těle cyklu while je příkaz pro modifikaci hodnoty x (x++). Je tam ovšem i příkaz if, který testuje hodnotu x také. Je-li splněná podmínka x==5, provádí se příkaz break. Ten způsobí okamžitý výskok ze smyčky, tedy na další příkaz za ukončovací závorkou těla while. Příkaz cout vypíše informaci a důležité je, že x opouští tělo while bez dokončení, tedy x++ za break se již neprovede.

 

PŘÍKLAD: break_2

int x=0;                                                  //alokuje a inicializuje x jako int

do                                                          //návěstí pro while o těle cyklu

  {                                                                          //začátek těla cyklu do-while

  cout<<x<<endl;                                                //výpis aktuální hodnoty int x

  if(x==5)                                               //při splnění podmínky provede příkazy v novém těle pro if

        {                                                                    //začátek těla pro if

        cout<<"výskok ze smyčky"<<endl;        //výpis informační zprávy

        break;                                            //opouští tělo cyklu do-while

        cout<<"se již nikdy neprovede";             //sem se běh programu nikdy nedostane

        }                                                                    //konec těla pro if

  x++;                                                     //přičítání int x

  }                                                                          //konec těla cyklu do-while

while(x<100000);                                                 //testovací podmínka cyklu do-while

cout<<"místo, kde se pokračuje po break";   //místo odzkoku při x rovno 5

getchar();                                                             //čekání na entr

return 0;                                                               //výstup z konzolové aplikace

 

Program demonstruje využití příkazu break ve vazbě do-while. V podmínce while je test proměnné x. Cyklus bude probíhat tak dlouho, pokud x bude menší než 10000. V těle cyklu while je příkaz pro modifikaci hodnoty x (x++). Je tam ovšem i příkaz if, který testuje hodnotu x také. Je-li splněná podmínka x==5, provádí se tělo příkazu pro if. To obsahuje příkaz cout s informačním výpisem, příkaz break, který provede výskok a obsahuje ještě jeden příkaz cout, který se ale nikdy neprovede. Příkaz break se vztahuje k tělu cyklu do-while, nikoliv k tělu podmínky if. Break provede výskok na příkaz cout, nedojde již tedy k testu podmínky cyklu do-while. Program čeká na entr a pak končí.

 

 

PŘÍKLAD: break_3

char x=getchar();                                                                //vstup x jako char z klávesnice

switch (x)                                                                             //hlava přepínače pro řídící x

   {                                                                                         //začátek těla přepínače

   case 'a': cout<<"Stisknuta a"<<endl;                           //větev BEZ ukončovacího break

   case 'b': cout<<"Stisknuta b"<<endl;break;               //větev pro hodnotu x rovnu 'b'

   case 'c': cout<<"Stisknuta c"<<endl;break;                //větev pro hodnotu x rovnu 'c'

   }                                                                                         //konec těla přepínače

while(getchar()!='e');                                          //čekání na stisk 'e'

return 0;                                                                               //opuštění konzolové aplikace

 

 

Program demonstruje využití příkazu break ve vazbě na příkaz switch a case. Program alokuje proměnnou x jako char a volá funkci getchar, která ukládá do x první znak z klávesnicového buferu. Přepínač switch vytváří své tělo, ve které jsou vytvořeny větve case a,b,c. Jednotlivé větve case vytvářejí jakési svá jednotlivá těla příkazů, které syntaxně nemusí být uzavřená ve složených závorkách. Těla jednotlivých větví case začínají dvojtečkou a jsou ukončeny příkazem break. Ve větvi a příkaz break chybí, což způsobí to, že při x==‘a‘ dojde k vykonání příkazu cout, ale běh programu pokračuje i vykonáním větve pro ‚b‘. Jinak řečeno: příkazy budou vykonány až do doby, kdy se objeví první příkaz break. Je tedy nutné dávat pozor na ukončení jednotlivých větví příkazem break. Po vykonání příkazu break dojde k opuštění těla switch a pokračuje se příkazem while, které čeká na stisk ‚e‘. Pak program končí.

 

PŘÍKLAD: break_4

for(int i=0;i<=10000;i++)                                    //cyklus inckrementace int i od 0 do 10000

 {                                                                           //počátek těla cyklu for

 cout<<i<<endl;                                                  //volání výstupního proudu (výpis na monitor)

 if(i==10)                                                               //test podmínky i==10

    {                                                                        //začátek těla podmínky pro if

    cout<<"Výskok z cyklu";                              //výpis informační zprávy

    break;                                                               //opuští tělo cyklu for

    cout<<"Nikdy neproběhne";                       //sem se běh programu nikdy nedostane

    }                                                                        //konec těla podmínky pro if

 }                                                                           //konec těla cyklu for

cout<<"pokračování po break"<<endl;          //výpis informační zprávy, místo po skoku break

getchar();                                                             //čekání na entr

return 0;                                                               //výstup z konzolové aplikace

 

Program demonstruje využití příkazu break ve vazbě na příkaz cyklu for. Tělo příkazu for je vytvořeno pro čítání proměnné int i od 0 do 10000 s výpisem na monitor. V těle cyklu for se vyskytuje podmínka if pro i==10, za kterou se vytváří tělo if příkazu.  V těle příkazu if je proveden výpis informační zprávy a následně program vykoná příkaz break. Ten ukončí cyklus for a běh programu přechází na bezprostředně první příkaz za ukončovací závorkou těla for, což je příkaz cout. Příkaz cout, který je za break, nikdy neproběhne. Program končí čekáním na entr.

 

 

 

 

PŘÍKLAD: break_5

int x=0,y=0;                                                          //alokuje a inicializuje x,y jako int

while(x<=10)                                                        //testovací podmínka pro while

  {                                                                          //počátek bloku příkazů pro tělo cyklu while x

  cout<<x<<endl;                                                //výpis hodnoty x na monitor

  if(x==5)                                               //test podmínky pro x==5

    {                                                                        //počátek bloku příkazů pro if

    while(y<=10000)                                              //testovací podmínka pro vnořené while

        {                                                                    //počátek příkazů pro vnořené tělo while y

        cout<<(char)y<<endl;                               //výpis int y přetypovaného na char

        if(y==5)break;                                             //test podmínky pro y==5

        y++;                                              //přičítání hodnoty int y

        }                                                                    //konec příkazů pro vnořené tělo while y

    }                                                                        //konec bloku příkazů pro if

  x++;                                                     //přičítání hodnoty int x, místo po skoku break

  }                                                                          //konec bloku příkazů pro tělo cyklu vhile x

getchar();                                                             //čekání na entr

return 0;                                                               //opuštění konzolové aplikace

 

Program demonstruje příkaz break, který je umístěn v cyklu while, které je vnořeno v jiném cyklu while. Tělo příkazu while je tvořeno příkazy pro výpis hodnoty proměnné int x a je testováno na hodnotu x==5. Při splněné podmínce program přechází do vnořeného cyklu while y pro výpis y do 10000. Int y je přetypován na char a vypisuje znaky dle ASCII. Cyklus je ovšem přerušen testem if pro y==5. Při splněné podmínce program přechází na příkaz break, který způsobí ukončení nejvnitřnější neuzavřené smyčky, tedy while pro y. Běh programu ukončuje vykonávání cyklu while y výskokem na příkaz x++, jež je v těle cyklu while x. Break se vztahoval k while y, nikoliv k while x a proto bude cyklus while x vykonán až do neplatnosti podmínky x<=10. Tělo cyklu while x proběhne celé a ukončení cyklu while x přechází na čekání na stisk klávesy entr.

 

 

 



Abecední seznam všech článků Vyhledání pojmů ve článcích




Weby o programování
Odkazy na velké servery o programování a vývoji SW
odkazy/programovani
Mikroprocesory IV.
Varianty návrhu číslicových řídících systémů realizovaných jako sekvenční obvody.
programovani/procesory_4
Mikropočítače
Seznámení s obecnou problematikou počítačů a mikropočítačů.
programovani/mikropocitace
Procesory a mikroprocesory
Obecný úvod do základů mikroprocesorové techniky, architektury počítačů
knihy/mikroprocesory/obsah_mikro2.php
OnLine televize
Seznam světových on line televizních vysílání
internet/katalog_internetove_televize
Programování PHP
Články o programování webových stránek pomocí PHP.
internet/katalog_programovani_php
JavaScript - ukázky
Příklady užití některých často používaných efektů na stránky.
katalogy/javascript
Popis HTML formátu
Velikost textu, barva textu, rozvržení stránky, obrázky, barva pozadí se zapisuje pomocí HTML příkazů.
stranky/html_tag
Popis jazaka C
Průvodce příkazy programovacího jazyka C.
programovani/jazyk_c
Otevře stránky Fulltextové vyhledávání na celém serveru
Digitalizované odborné knihy
Velká encyklopedie pojmů a zkratek
Česko - anglicko - německý technický slovník
Klasický katalog firem, služeb a stránek
OnLine překladač  vět a textů (nepoužívá Google)
Stránky pro chvíle oddechu od studia, relaxace
Katalog českých firem dle technologií
Internetový odkazník
Otevře hlavní stranu pro oddíl programování




 Wikipedie   Seznam stránek   Kapitoly témat   Významné servery   Klíčová slova 








Otevře hlavní stranu společnosti AmaPro

Všechna práva vyhrazena. Určeno jen pro osobní využití. Bez předchozího písemného souhlasu správce www.amapro.cz je zakázána jakákoli další publikace, přetištění nebo distribuce jakéhokoli materiálu nebo části materiálu zveřejněného na www.amapro.cz a to včetně šíření prostřednictvím elektronické pošty. Články, jejichž přímým autorem není amapro.cz lze publikovat pouze se souhlasem jejich majitelů či administrátoru příslušného webu.