Rumah >pembangunan bahagian belakang >C++ >Adakah Operator Pra dan Selepas Penambahan Menghasilkan Output Berbeza dalam Gelung `untuk` C?
Output yang Sama dalam Gelung 'Untuk' dengan Pos dan Pra-Peningkatan
Dalam pengaturcaraan C, gelung 'untuk' digunakan secara meluas untuk lelaran tugasan. Selalunya pembangun menghadapi kekeliruan apabila menggunakan pasca kenaikan (i ) dan pra-kenaikan ( i) dalam keadaan gelung 'untuk'.
Memahami Gelung
Kod berikut menunjukkan dua gelung 'untuk':
for(i=0; i<5; i++) { printf("%d", i); } for(i=0; i<5; ++i) { printf("%d", i); }
Kekeliruan dan Penjelasan
Orang mungkin menganggap bahawa gelung ini akan menghasilkan hasil yang berbeza disebabkan penggunaan pasca-kenaikan dalam gelung pertama dan pra-kenaikan dalam kedua. Walau bagaimanapun, diperhatikan bahawa kedua-dua gelung menghasilkan output yang sama.
Kunci untuk memahami tingkah laku ini terletak pada susunan penilaian dalam gelung 'untuk'. Aliran kawalan gelung 'untuk' boleh diringkaskan seperti berikut:
Kenaikan Sebelum lwn. Selepas
Pra-kenaikan (mis., i) kenaikan i sebelum menilai keadaan atau badan gelung. Ini bermakna saya akan sentiasa menambah i sebanyak 1 dan menilai kepada nilai baharu.
Tambahan selepas (cth., i ) kenaikan i selepas menilai badan gelung. Ini bermakna saya akan menilai kepada nilai asal (pra-incremented) sebelum menambah i sebanyak 1.
Namun, memandangkan "langkah penambahan" (langkah 4) dilakukan selepas pelaksanaan badan gelung, yang sebenar nilai i dalam kedua-dua kes adalah sama pada masa lelaran seterusnya dipertimbangkan. Itulah sebabnya kedua-dua gelung menghasilkan keputusan yang sama.
Kesimpulannya, sementara operator pra dan selepas kenaikan berkelakuan berbeza dalam konteks umum, mereka menghasilkan output yang sama apabila digunakan dalam gelung 'untuk' disebabkan oleh susunan penilaian dan pelaksanaan.
Atas ialah kandungan terperinci Adakah Operator Pra dan Selepas Penambahan Menghasilkan Output Berbeza dalam Gelung `untuk` C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!