Rumah > Java > javaTutorial > Java Prefix vs. Postfix Increment/Decrement: Mengapa `i ` Menghasilkan 7 dalam Contoh Ini?

Java Prefix vs. Postfix Increment/Decrement: Mengapa `i ` Menghasilkan 7 dalam Contoh Ini?

Patricia Arquette
Lepaskan: 2024-12-17 02:41:24
asal
280 orang telah melayarinya

Java Prefix vs. Postfix Increment/Decrement: Why Does `i  ` Result in 7 in This Example?

Operator Penambahan/Penurunan Awalan dan Pascafiks dalam Java

Memahami perbezaan antara pengendali kenaikan/penurunan awalan dan pascafix adalah penting dalam pengaturcaraan Java. Artikel ini meneroka kesan pengendali ini dalam contoh praktikal.

Soalan:

Pertimbangkan coretan kod berikut:

int i = 3;
i++; // Postfix increment

System.out.println(i);    // Prints "4"

++i; // Prefix increment
System.out.println(i);    // Prints "5"
System.out.println(++i);  // Prints "6"
System.out.println(i++);  // Prints "6"
System.out.println(i);    // Prints "7"
Salin selepas log masuk

Mengapa panggilan terakhir ke System.out.println(i) mencetak nilai 7?

Jawapan:

Kelakuan kod ini dikawal oleh semantik pengendali kenaikan awalan dan pascafiks:

  • Kenaikan awalan ( ): Menambah operan sebelum ia digunakan dalam ungkapan.
  • Tambahan Postfix ( ): Menambah operan selepas ia digunakan dalam ungkapan.

Tambahan Awalan:

int i = 6;
System.out.println(++i); // Prints "6"
Salin selepas log masuk

i menilai kepada 7, kerana ia menambah i sebelum menggunakan nilainya dalam ungkapan. Jadi ia mencetak "6" dan menambah i kepada 7.

Penambahan Postfix:

int i = 6;
System.out.println(i++); // Prints "6" (i = 7, prints 6)
Salin selepas log masuk

i menilai kepada 6, kerana ia menyimpan salinan i, menambah 1 kepada i, dan mengembalikan nilai asal. Ungkapan mencetak "6", tetapi i kini 7.

Dalam panggilan terakhir, System.out.println(i) mencetak nilai semasa i, iaitu 7. Ini kerana pengendali kenaikan postfix sebelum ini telah mengemas kini kepada 7.

Atas ialah kandungan terperinci Java Prefix vs. Postfix Increment/Decrement: Mengapa `i ` Menghasilkan 7 dalam Contoh Ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan