Soovitatav, 2020

Toimetaja Valik

Erinevus pausi ja jätkamise vahel

Nii „murda” kui „jätkata” on „hüpata” avaldused, mis edastavad programmi juhtimise programmi teisele osale. C ++ toetab nelja hüpoteeringut, nimelt „tagasipöördumine”, „goto”, „break” ja „jätkata”. Java toetab kolme hüppeteatist "break" "jätkata" ja "tagasi". Peamine erinevus pausi ja jätkamise vahel on see, et murda kasutatakse silmuse koheseks lõpetamiseks, samal ajal kui jätkata jooksva iteratsiooni lõpetamist ja jätkab kontrolli järgmise silmus iteratsiooni juurde. Uurime erinevust vaheaja ja jätkamise vahel C ++ ja Java kontekstis.

Võrdluskaart:

Võrdluse alusmurdajätkata
Ülesanne
See lõpetab lingi ülejäänud iteratsiooni täitmise.See lõpetab ainult silmuse praeguse iteratsiooni.
Kontroll pärast katkestamist / jätkamist„murda” jätkab programmi juhtimist selle „murda” sisaldava silmuseni.„Jätka” jätkab programmi juhtimist selle ahela järgmisele iteratsioonile, mis sisaldab „jätkamist”.
PõhjusedSee põhjustab silmuse ennetähtaegse lõpetamise.See põhjustab järgmise iteratsiooni varase täitmise.
Jätkamine„murda” peatab silmuse jätkamise."Jätka" ei pea silma jätkamist, vaid peatab ainult praeguse iteratsiooni.
Muud kasutusalad„vaheaega“ saab kasutada koos „lüliti“, „märgisega”."Jätka" ei saa teostada "switch" ja "label" abil.

Break'i mõiste

C + + vaheajal on ainult kaks kasutusviisi, st kõigepealt kasutatakse seda juhtumi lõpetamiseks lüliti avalduses. Teiseks, „lõpetada silmus ja jätkata juhtimist järgmise silmusele järgneva avalduse juurde”. Kuid Java-pausil on kõigepealt kolm kasutusviisi, see lõpetab juhtumi lülituses, teine ​​lõpetab silmusekatte ja kolmas, nagu varem mainitud, et Java ei anna „goto” avaldust, kuid laiendatud vormi murda saab kasutada „goto” asukoht.

Vaatame, et iga “murda” kasutamine on üksikasjalik.

Esmakordne kasutamine, et lõpetada juhtumi täitmine lülitil. Lülituslüliti mõjutab ainult seda lülitit, mis seda ümbritseb, see ei mõjuta lülitit ümbritsevat silmus.

 // C ++ kontekstis. // kasutades C + + kontekstis lülitit. lüliti (täisarvu väljend) {juhtum 1: ..... ..... murda; juhtum 2: ..... ..... murda; juhtum 3: ..... ..... murda; vaikimisi: ....... .......} 

Teine kasutusviis, et lõpetada ahela sunniviisiline lõpetamine ja jätkata tsükli järgmises avalduses. Niipea, kui murdepunkti silmis on tekkinud, lõpetatakse see silmus kohe, kui ei täideta selle silmusekeha ülejäänud koodi ja programmi juht jõuab järgmise silmuseni kirjutatud avalduse juurde.

 // kasutades vaheaega, et väljuda silmusest kontekstist Java klassi main_class {public static void main (string args []) {jaoks (int i = 0; i <100; i ++) {system.out.println ("i:" + i); kui (i == 10) murda; // kui tingimuse sees, kui 'satistfies' kontroll väljub silmusest 'for'. } system.out.println ("Loop puruneb siin"); }} 

murda ainult lase programmil väljuda silmusest, mis seda ümbritseb. Kui murda kasutatakse sisestatud silmusega, siis murdub see ainult sisimasse silmusesse ja ei mõjuta välissilmu.

Kolmas kasutamine, kasutades vaheaega goto vormis. Java kasutab murda kui goto vormi ilma probleemideta. Kuna goto pakub struktureerimata haru, mida on raske mõista ja keelab ka kompilaatori optimeerimise, kasutab Java laiendatud vormi, mis on sarnane goto ja aitab korraga väljuda rohkem kui ühest plokist ja jätkata programmi juhtimist märgistatud ploki lõpp, mis on ära toodud vaheajaga.

Deklaratsioon:

 murdmärk; 

Siin on „etikett” Java-koodis teatud koodiploki või identifikaatori nimi ja see märgistatud plokk peab lisama vaheaja. Märgistatud murdepunkti kasutatakse sisestatud silmusekomplektist väljumiseks. Kuna märgistatud katkestusavaldus on täidetud, väljub juht märgistatud plokist, mida nimetatakse vaheajaga.
Vaatame seda praktiliselt.

 // kasutades murda kui goto vormi kontekstis Java klassi main_class {public static void main (string args []) {boolean t = true; kõigepealt {second {third {system.out.println ("see kolmas plokk"); kui (t) murda esmalt; } system.out.println ("see teine ​​plokk"); } system.out.println ("see esimene plokk"); } system.out.println ("see põhiplokk"); }} // väljund: see on kolmas plokk, see on põhiplokk 

Kui kood jõuab kolmandasse plokki, siis selles koodis täidetakse selle trükiteatis ja pärast seda jätkub kontroll „if” avaldusega ja kui see on täidetud, siis täidetakse murdepunkti etikettiga. Esmalt on murdega kinnitatud sild, nii et kontroll jätkub avaldusega, mis on kirjutatud pärast ploki lõppu, st põhiplokis, mis on trükiteade ja mis täidetakse.

Jätka määratlus

Kuna murda lõpetab silma järelejäänud iteratsiooni ja laseb juhtseadmel silmusest väljuda, jätkake tööd mõnevõrra murda. Jätka avaldus peatab selle jooksva iteratsiooni jaoks silmus oleva ülejäänud koodi teostamise ja jätkab juhtimist selle silmuseni järgmise iteratsiooni juurde. Jätkuv avaldus jätab praeguse iteratsiooni koodi vahele ja edastab kontrolli järgmise silmus iteratsiooni juurde.

Mõelgem selle näitega.

 // kasutamine jätkub kontekstis C ++ -ga. // see prindib paarisarvu kuni 100. klassi main_class {public static void main (string args []) {jaoks (int i = 0; i <100; i ++) {kui (i% 2! = 0) jätkub; // jätkake kontrolli jätkamist järgmisele iteratsioonile silmusüsteemis.out.println ("i:" + i); }}} 

Ülaltoodud programmis, kui “kui” avaldus on täidetud, siis jätkake avaldus, mis ei võimalda järgnevat trükiteadet käivitada ja jätkata juhtimist järgmise „it” silmuseni. Kui i = 1, siis on „kui” tingimus täidetud ja jätkub, kui teostatakse printimise avaldust „i” paaritu väärtuse jaoks ja kontroll jätkub järgmise silmus iteratsiooni jaoks „i = 2” jaoks. Kui i = 2, siis ei ole „kui” avaldus täidetud; jätkata ei täida ja printimise väljavõte prindib 'i' väärtuse, mis on ühtlane.

Peamised erinevused pausi ja jätkamise vahel

  1. Põhimõtteliselt lõpetab murda märksõna ülejäänud ülejäänud ahela iteratsioonid. Teisest küljest lõpetab jätkuva märksõna ainult silmuse praegune iteratsioon.
  2. Kui murdepõhine märksõna käivitub, kontrollib programmi väljalülitamine silmusest välja ja jätkab järgnevat avaldust pärast silmus. Jätkata võtmesõna jätkamisel jätkub programmi juhtimine ahela järgmisele iteratsioonile.
  3. Nagu ülalpool kirjeldatud, järeldatakse, et pärast programmist väljumise kontrolli lõpetamist silmusest on selgelt arusaadav, et murdumine põhjustab mis tahes silmuse varajase lõpetamise. Teisest küljest jätkake ainult praeguse iteratsiooni lõpetamine ja jätkake silmus järgmisel iteratsioonil, siis võime öelda, et jätkamine põhjustab järgmise ahela iteratsiooni varase täitmise.
  4. Katkestamise võtmesõna lõpetab kõik ülejäänud iteratsiooni pärast selle täitmist, nii et me võime öelda, et see peatab ahela jätkamise, kuid jätkuva märksõna jätkab silmusetenduse teostamist.
  5. Märksõna murda saab kasutada nii "lüliti" avaldustega kui ka "märgisega", samas kui jätkuvat märksõna ei saa kasutada "lüliti" ja "märgistusega".

Järeldus:

Katkestuse ja jätkamise avaldus on mõlemad hüppedeklaratsioon, mis edastab kontrolli programmi teisele osale. Kui katkestuse avaldus laseb kontrollil väljuda silmusest, siis jätka avaldus selle kontrolli järgmise iteratsiooni juurde.

Top