1. breakpahayag

Tingnan natin ang isang halimbawa mula sa nakaraang aralin:

Code Paliwanag
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
Magbabasa ang program ng isang linya mula sa keyboard, hanggang sa ipasok mo ang "exit".

Ang programa ay nagbabasa ng mga linya mula sa console hanggang sa exitmaipasok ang salita. Kung ilalagay mo ang salitang ito, ang isExit variable ay magiging true, ang loop condition ay , at ang loop ay magtatapos."!isExitfalse

Ang Java ay may espesyal breakna pahayag na nagbibigay-daan sa iyong pasimplehin ang ganoong lohika. Kung ang isang breakpahayag ay naisakatuparan sa loob ng isang loop, pagkatapos ay ang loop ay nagtatapos kaagad. Ang programa ay magsisimulang isagawa ang pahayag na sumusunod sa loop. Ang pahayag ay napakaikli:

break;

Narito kung paano mo magagamit ang breakpahayag upang muling isulat ang halimbawang tinalakay natin:

Code Paliwanag
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
Magbabasa ang program ng isang linya mula sa keyboard, hanggang sa ipasok mo ang "exit".


2. ipagpatuloy ang pahayag

Ngunit breakhindi ba ang tanging Java statement na nagbibigay-daan sa iyong kontrolin ang pag-uugali ng isang loop. Ang Java ay mayroon ding continuepahayag. Kung magpapatupad ka ng isang continuepahayag sa loob ng isang loop, ang kasalukuyang pag-ulit ng loop ay magtatapos nang mas maaga sa iskedyul.

Ang pag-execute ng loop body nang isang beses ay tinatawag na iteration ng loop. Ang continuepahayag ay nakakaabala sa kasalukuyang pag-ulit ng loop, ngunit hindi tulad ng breakpahayag, hindi nito tinatapos ang loop mismo. Ang pahayag ay maikli din:

continue;

Ang continuepahayag ay sobrang maginhawa sa isang loop kung gusto naming 'laktawan' ang pagpapatupad ng loop body sa ilang mga sitwasyon.

Gawain: Nais naming magsulat ng isang programa na nagpi-print ng mga numero mula 1sa 20ngunit nilaktawan ang mga numero na nahahati sa 7. Ito ang maaaring hitsura ng code na ito.

Code Paliwanag
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
Ang programa ay nagpapakita ng mga numero mula 1hanggang 20. Kung ang numero ay nahahati ng 7(ang natitira sa paghahati sa 7ay 0), pagkatapos ay laktawan namin ang pagpapakita ng numero.

Sa totoo lang, hindi gagana ang code na ito , dahil imananatili ito magpakailanman sa numero 7. Pagkatapos ng lahat, continuenilaktawan ng pahayag ang dalawa pang pahayag: System.out.println(i)at i++. Bilang resulta, sa sandaling maabot natin ang value 7, ihihinto ang pagbabago ng variable at mapupunta tayo sa isang walang katapusang loop.

Isinulat namin ang code sa ganitong paraan upang ilarawan ang napakakaraniwang pagkakamaling ito. Paano natin ito aayusin?

Mayroong dalawang mga pagpipilian dito:

Opsyon 1: baguhin ibago isagawa continue, ngunit pagkataposi % 7

Opsyon 2: palaging dagdagan isa simula ng loop. Ngunit iang panimulang halaga ay dapat na 0.

Opsyon 1 Opsyon 2
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
   {
     i++;
     continue;
   }
   
   System.out.println(i);
   i++;
}
int i = 0;
while (i < 20)
{
   i++;
   if ( (i % 7) == 0)
     continue;
   System.out.println(i);
}