Neden bir değişken for döngüsü başlatma işleminde bildirilmelidir?


11
int v = 0;

for (v; v<2; v++) {
    ...

}

Java'da buna neden izin verilmiyor?

Neden vfor döngüsü başlatmasında değişken bildirmemiz gerekiyor ? Bunu böyle yaparsam bunun bir ifade olmadığını biliyorum ama Java yukarıdakilere neden izin vermiyor?


biz yapmıyoruz; for(;;)
dehasi

3
vbir ifade olmadığından izin verilmez: v;başka bir yerde kendi başınıza yazamamanızın nedeni de aynıdır .
Andy Turner

Sen buna ihtiyacı yoktur gelişmiş için fordöngü.
Arvind Kumar Avinash

Yanıtlar:


14

Eğer vdöngü önce beyan edilmesi, sen açıklamada boşaltmak için ilk kısmını terk etmelidir:

int v = 0;

for (; v < 2; v++) {
    ...
}

Sadece yazmanın bir anlamı yok v;.


6

Bildirimdeki fazlalığı kaldırırsanız, döngü bildiriminiz geçerlidir v( vönceden bildirildiği varsayılarak ):

Olarak değiştir for(; v < 2; v++)

Geleneksel fordöngüdeki üç değiştiricinin tümü Java'da isteğe bağlıdır.

Alternatif örnekler:

Aşağıda bir while (true)döngü ile aynıdır :

for (;;) {

}

Ek artışlar ekleme:

int j = 0;
for (int k = 0; k < 10; k++, j++) {

}

Döngüyü sonlandırmak için ek koşullar ekleme:

int j = 0;
for (int k = 0; k < 10 || j < 10; k++, j++) {

}

Aynı türde değişkenin birden çok bildirimi :

for (int k = 0, j = 0; k < 10 || j < 10; k++, j++) {

}

Ve tabii ki bunlardan herhangi birini istediğiniz gibi karıştırabilir ve eşleştirebilirsiniz, istediğinizi tamamen dışarıda bırakabilirsiniz.


3

Göre java doc

For ifadesinin genel biçimi aşağıdaki gibi ifade edilebilir:

for (initialization; termination; increment) {
    statement(s)
}

...

For döngüsünün üç ifadesi isteğe bağlıdır

forDöngü oluşturabileceğiniz ve 3 ifade dışından bazılarını boş bırakabileceğiniz anlamına gelir . Seçeneklerden biri int vdöngüden önce bildirilmesidir :

int v = 0;
for(; v<2; v++)

1

'De bir değişken bildirmeniz gerekmez ForInit.

Diğerlerinin işaret ettiği gibi, basitçe atlayabilirsiniz ForInit; ancak burada ifade ifadelerinin bir listesini de kullanabilirsiniz.

Örneğin, yeni sınıf örnekleri oluşturabilir, yöntemleri çağırabilir ve / artan / azalan değişkenler atayabilirsiniz:

int v;
for (new String(), "".toString(), v = 0, v++;;);

(Bu örnek saçma ama yasaldır)

Ancak, bu ifade ifadelerini yerel değişken bildirimleriyle karıştıramazsınız.


0

Gelişmiş bir fordöngü için buna ihtiyacınız yoktur .

public class Main {
    public static void main(String[] args) {
        int[] integers = { 10, 20, 30 };
        for (int x : integers) {
            System.out.println(x);
        }
    }
}

0

int w = 0;

televizyonda;

(v v <2; v ++) {

} döngüden önce v bildirdiniz , ancak yeniden başlatma olmadan tekrar kullandınız.

Eğer kullanırsanız w hangi zaten ilan ve başlatılır önce, sonra kodunun altına hiçbir issues.like olacak

için (w <2 ++ a) {

}

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.