Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp pertraukos ir tęsti

Tiek „pertrauka“, tiek „tęsti“ yra „šuolio“ pareiškimai, perkeliantys programos valdymą į kitą programos dalį. „C ++“ palaiko keturis šuolio pareiškimus: „grįžti“, „goto“, „pertrauka“ ir „tęsti“. „Java“ palaiko tris peršokimo pareiškimus „pertrauka“ „tęsti“ ir „grąžinti“. Pagrindinis skirtumas tarp pertraukos ir tęsimo yra tas, kad pertrauka naudojama nedelsiant nutraukti kilpą, o toliau tęsti dabartinę iteraciją ir vėl paleidžiama į kitą kilpos iteraciją. Ištirsime skirtumą tarp pertraukos ir tęskite C ++ ir Java kontekste.

Palyginimo diagrama:

Palyginimo pagrindaspertraukaTęsti
Užduotis
Jis nutraukia likusios kilpos iteracijos vykdymą.Jis nutraukia tik esamą kilpos iteraciją.
Valdymas po pertraukos / tęsimo„pertrauka“ atnaujina programos valdymą iki ciklo pabaigos, kuriame yra „pertrauka“.„Tęsti“ atnaujina programos valdymą iki kito to ciklo iteracijos, apimančios „tęsti“.
PriežastysTai sukelia anksti nutraukti kilpą.Tai sukelia ankstesnį kito kartojimo vykdymą.
Tęsinys„pertrauka“ sustabdo ciklo tęsimą.„tęsti“ nesustabdo kilpos tęsimo, jis tik sustabdo dabartinį iteraciją.
Kiti naudojimo būdai„pertrauka“ gali būti naudojama su „switch“, „label“.„tęsti“ negalima atlikti „perjungimo“ ir „etiketės“.

„Break“ apibrėžimas

C + + pertraukoje yra tik du naudojimo būdai, ty pirmiausia jis naudojamas „nutraukti bylos vykdymą perjungimo pareiškime“. Antra, „nutraukti kilpą ir atnaujinti valdymą į kitą pareiškimą po kilpos“. Tačiau „Java“ pertraukoje pirmiausia yra trys paskirtys, ji nutraukia jungiklį, antra, nutraukia linijos uždarymo pertrauką ir, trečia, kaip minėta anksčiau, „Java“ nesuteikia „goto“ pareiškimo, tačiau išplėstinės formos pertrauka gali būti naudojama „goto“ vieta.

Pažiūrėkime, kiekvienas „pertraukos“ panaudojimas išsamiai.

Pirmasis panaudojimas nutraukti bylos vykdymą jungiklyje. Perjungimo jungiklis veikia tik tą jungiklį, kuris jį užsidaro, jis neturi įtakos jungikliui prijungtam kilpui.

 // C ++ kontekste. // naudojant „C ++“ kontekste esantį pertrauką. jungiklis (sveikasis skaičius) {1 atvejis: ..... ..... pertrauka; 2 atvejis: ..... ..... pertrauka; 3 atvejis: ..... ..... pertrauka; numatytas: ....... ....... } 

Antrasis panaudojimas, kad priverstinai nutrauktumėte kilpą ir tęstumėte kitame kilpos pranešime. Iš karto, kai lūžio metu atsiranda pertrauka, ši kilpa nedelsiant nutraukiama, nevykdant likusio kodo toje kilpoje, o programos kontrolė pasiekia kitą pareiškimą, parašytą po to.

 // naudojant pertrauką, kad išeitumėte iš kilpos kontekste į „Java“ klasę main_class {public static void main (string args []) {už (int i = 0; i <100; i ++) {system.out.println ("i:" + i); jei (i == 10) pertrauka; // kaip sąlyga viduje „jei“ satistfies valdymas išeina iš „už“ kilpą. } system.out.println („čia pertrauka“); }} 

pertrauka tik leiskite programai išeiti iš kilpos, kuri ją užima. Jei pertrauka naudojama su įdėtomis kilpomis, ji išeina tik pačią giliausią kilpą ir neturi įtakos išorinei kilpai.

Trečiasis naudojimas, naudojant pertrauką kaip „goto“ formą. „Java“ naudoja „goto“ pertrauką be problemos. Kadangi „goto“ suteikia nestruktūrizuotą šakotuvą, kurį sunku suprasti ir taip pat draudžia kompiliatoriaus optimizavimą, „Java“ naudoja išplėstinę pertraukos formą, kuri yra panaši į „goto“ ir padeda išeiti iš daugiau nei vieno bloko vienu metu ir atnaujinti programos kontrolę paženklinto bloko pabaiga, paminėta su pertrauka.

Deklaracija:

 pertraukos etiketė; 

Čia „etiketė“ yra tam tikro „Java“ kodo ar identifikatoriaus pavadinimas, ir šis pažymėtas blokas turi pridėti pertrauką. Pažymėta pertrauka yra naudojama norint išeiti iš įdėtos kilpos. Susipažinus su paženklinta pertrauka, valdiklis išeina iš pažymėto bloko, kuris paminėtas su pertrauka.
Pažiūrėkime tai praktiškai.

 // naudojant pertrauką kaip „goto“ formą kontekste „Java“ klasės main_class {public static void main (string args []) {boolean t = true; pirmoji {second {third {system.out.println („šis trečiasis blokas“); jei (t) pirmiausia nutraukti; } system.out.println („šis antrasis blokas“); } system.out.println („šis pirmasis blokas“); } system.out.println („šis pagrindinis blokas“); }} // produkcija: tai yra trečiasis blokas, kuris yra pagrindinis blokas 

Šiame kode, kai valdiklis pasiekia trečiąjį bloką, jo spausdinimo pareiškimas bus įvykdytas ir po to valdiklis vėl pradeda veikti „jei“ pareiškime, ir kaip jis įvykdytas, įvykdomas pertrauka su etikete. Pirma yra etiketė, pridedama su pertrauka, todėl valdiklis vėl pradeda vartoti teiginį, parašytą po bloko pabaigos, ty pagrindiniame bloke, kuris yra spausdinimo pranešimas ir kuris įvykdomas.

„Tęsti“ apibrėžimas

Kaip pertrauka nutraukia likusį ciklo iteraciją ir leidžia valdikliui išeiti iš kilpos, čia, tęsti darbus šiek tiek veikia kaip pertrauka. Tęstinis pareiškimas sustabdo likusio kodo vykdymą toje dabartinėje iteracijoje ir vėl įjungia valdiklį į kitą šios linijos iteraciją. Tęsinys pareiškimas praleidžia dabartinio iteracijos kodą ir perduoda valdiklį į kitą kilpos iteraciją.

Suprasime jį su pavyzdžiu.

 // naudojant „C ++“ kontekste. // ji spausdina lygų skaičių iki 100. klasė main_class {public static void main (string args []) {už (int i = 0; i <100; i ++) {jei (i% 2! = 0) tęsiasi; // toliau tęsti kontrolę į kitą iteraciją „loop system.out.println“ ("i:" + i); }}} 

Pirmiau pateiktoje programoje, jei „jei“ teiginys tenkinamas, tęsti pareiškimą, kuris neleidžia atlikti toliau pateiktos spausdinimo ataskaitos ir tęsti kontrolę į kitą „for“ kilpos iteraciją. Jei i = 1, tuomet „jei“ sąlyga yra įvykdyta ir tęsiama, neatliekant „i“ nelyginės vertės spausdinimo ataskaitos, o kontrolė tęsiama į kitą „ciklo iteraciją“ „i = 2“. Jei i = 2, tuomet „jei“ teiginys nėra patenkintas; tęsti nepavyksta ir spausdinimo pranešimas spausdina „i“ reikšmę, kuri yra lygi.

Pagrindiniai skirtumai tarp pertraukos ir tęsti

  1. Iš esmės, pertraukos raktinis žodis nutraukia likusias likusias kilpos iteracijas. Kita vertus, tęstinis raktinis žodis nutraukia tik esamą kilpos iteraciją.
  2. Kai pertraukos raktinis žodis įvykdomas, programos išėjimo iš kilpos kontrolė ir vėl įjungiama į kitą pareiškimą po kilpos. Tęsiant raktinį žodį, programos kontrolė tęsiama į kitą kilpos iteraciją.
  3. Kaip minėta pirmiau, daroma išvada, kad atlikus programos išėjimo iš kilpos išjungimo valdymą, aiškiai suprantama, kad pertrauka sukelia ankstyvą bet kokios kilpos nutraukimą. Kita vertus, tęskite tik dabartinį iteracijos procesą ir tęskite į kitą ciklo iteraciją, tada galime pasakyti, kad tęsimas sukelia ankstesnį kito ciklo iteracijos vykdymą.
  4. Pertraukos raktinis žodis nutraukia visą likusį iteraciją po jo vykdymo, todėl galime pasakyti, kad jis sustabdo kontūro tęsimą, o tęsti raktinį žodį vis dar tęsia kilpos vykdymą.
  5. Pertraukos raktinį žodį galima naudoti kartu su teiginiais „perjungti“, taip pat „etiketę“, o tęsti raktinį žodį negalima naudoti su „switch“ ir „label“.

Išvada:

Pertraukos ir tęsimo pareiškimas abu yra šuolis, kuris perkelia valdiklį į kitą programos dalį. Tais atvejais, kai pertrauka leidžia valdikliui išeiti iš kilpos, tęstinis pareiškimas leidžia valdyti kitą šios kilpos iteraciją.

Top