public class Sample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("Hej");
}
}
}
Zachowanie takiej pętli znam, ale chyba nie do końca jak to działa pod spodem, ponieważ kombinowałem sobie zrobić taki kodzik:
public class Sample2 {
public static void main(String[] args) {
for (int i = 0; i < 10; ) {
i = i++;
System.out.println("Hej2");
}
}
}
I ten kod spowoduje, że pętla będzie nieskończona. I teraz zastanawia mnie czym się różni i++ wewnątrz ciała a deklaracja i++ wewnątrz deklaracji pętli?
Jeszcze zrobiłem sobie trzeci przypadek:
public class Sample3 {
public static void main(String[] args) {
for (int i = 0; i < 10; ) {
i++;
System.out.println("Hello");
}
}
}
Teraz zadziała to tak jak w przypadku numer 1. To co się dzieje z i++ w drugim przypadku. Gdzieś to w ogóle jest wykonywane to zwiększenie?
Czy po prostu mam zapamiętać, że co innego np. zrobić samo i++ w pętli czy nawet je wypisać println(). A co innego zrobić przypisanie do zmiennej.
Tylko skoro operujemy na tej samej zmiennej to czy mimo wszystko nie powinna ona zostać zwiększona o jeden?
Znalazłem taki przykład na stackoverflowe:
int i = 0;
System.out.print(i++);
System.out.print(i);
Wydrukowane zostanie: 01 to przenosząc to na mój kod powyżej i robiąc tak:
Jeszcze zrobiłem sobie trzeci przypadek:
public class Sample3 {
public static void main(String[] args) {
for (int i = 0; i < 10; ) {
i = i++;
System.out.print(i); //Będzie cały czas 0
System.out.println("Hello");
}
}
}
P. S Mam nadzieję, że nie pominąłem jakiś ważnych linijek kodu ;p