1. breakifade

Önceki dersten bir örneğe bakalım:

kod Açıklama
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
Siz girene kadar program klavyeden bir satır okuyacaktır "exit".

exitProgram kelime girilene kadar konsoldan satırları okur . Bu kelimeyi girerseniz değişken isExit olur true, döngü koşulu olur ve döngü sona erer."!isExitfalse

breakJava'nın bu tür mantığı basitleştirmenizi sağlayan özel bir ifadesi vardır . Bir döngü içinde bir breakifade yürütülürse, döngü hemen sona erer. Program, döngüyü izleyen ifadeyi yürütmeye başlayacaktır. Açıklama çok kısa:

break;

breakAz önce tartıştığımız örneği yeniden yazmak için ifadeyi şu şekilde kullanabilirsiniz :

kod Açıklama
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
Siz girene kadar program klavyeden bir satır okuyacaktır "exit".


2. devam ifadesi

Ancak, breakbir döngünün davranışını kontrol etmenize izin veren tek Java ifadesi değildir. Java ayrıca continuedeyime sahiptir. Bir döngü içinde bir ifade yürütürseniz continue, döngünün geçerli yinelemesi planlanandan önce sona erer.

Döngü gövdesinin bir kez çalıştırılması, döngünün yinelenmesi olarak adlandırılır. İfade, continuedöngünün geçerli yinelemesini kesintiye uğratır, ancak breakifadenin aksine, döngünün kendisini sonlandırmaz. Açıklama da kısa:

continue;

continueBelirli durumlarda döngü gövdesinin yürütülmesini 'atlamak' istiyorsak, ifade bir döngüde çok uygundur .

1Görev: -den -e kadar olan sayıları yazdıran 20ancak ile bölünebilen sayıları atlayan bir program yazmak istiyoruz 7. Bu kod böyle görünebilir.

kod Açıklama
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
Program, 1ile arasındaki sayıları görüntüler 20. Sayı ile bölünebilirse 7(bölümün kalanı ), 7o 0zaman sayıyı göstermeyi atlarız.

Aslında, bu kod çalışmaz , çünkü isonsuza kadar sayıya takılıp kalır 7. Sonuçta, continueifade diğer iki ifadeyi atlar: System.out.println(i)ve i++. Sonuç olarak, değerine ulaştığımızda 7değişken ideğişmeyi bırakacak ve sonsuz bir döngüye gireceğiz.

Bu çok yaygın hatayı göstermek için kodu bu şekilde yazdık. Bunu nasıl düzeltiriz?

Burada iki seçenek vardır:

Seçenek 1:i yürütmeden önce continue, ancak sonra değiştirini % 7

Seçenek 2:i her zaman döngünün başında artırın . Ancak o zaman ibaşlangıç ​​değeri olmalıdır 0.

seçenek 1 seçenek 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);
}