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
Patricia Arquetteasal
2024-12-17 02:41:24285semak imbas

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"

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"

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)

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!

Kenyataan:
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