Bagaimana untuk menyelesaikan ralat sintaks C++: 'ungkapan utama yang dijangkakan sebelum token ':'?
Dalam pengaturcaraan C++, ralat sintaks adalah masalah biasa. Salah satu ralat biasa ialah mesej ralat "ungkapan utama yang dijangka sebelum token ':'". Ralat ini biasanya berlaku apabila menggunakan ungkapan bersyarat dan pengendali ternary. Artikel ini akan memperkenalkan punca ralat ini dan memberikan penyelesaian yang sepadan.
Mula-mula, mari lihat contoh kod ringkas:
int main() { int x = 5; int y = 10; int max = (x > y) ? x : y; return 0; }
Dalam kod di atas, kami cuba menggunakan ungkapan bersyarat dan pengendali ternary untuk membandingkan saiz x dan y, dan menetapkan nilai yang lebih besar kepada pembolehubah maks. Walau bagaimanapun, pengkompil melaporkan ralat "ungkapan utama yang dijangkakan sebelum token ':'". Ini kerana dalam sintaks C++, "?" dan ":" dalam operator ternary mesti digantikan dengan ungkapan. Apabila ungkapan selepas tanda soal adalah benar, ungkapan selepas titik bertindih akan dilaksanakan jika tidak, ungkapan sebelum titik bertindih akan dilaksanakan.
Untuk menyelesaikan ralat ini, kami perlu memastikan bahawa ungkapan bersyarat yang digunakan dalam operator ternary adalah ungkapan undang-undang. Sebab biasa ralat ini termasuk yang berikut:
int main() { int x = 5; int y = 10; int max = (x >) ? x : y; // 错误:条件表达式缺失 return 0; }
int main() { int x = 5; int y = 10; int max = x > y ? x : y; // 错误:缺少条件表达式的括号 return 0; }
Untuk membetulkan ralat dalam dua kes di atas, kita hanya perlu menggunakan ungkapan undang-undang dalam kedudukan ungkapan bersyarat dan pastikan anda menggunakan sintaks yang betul.
Selain itu, apabila kami menggunakan pengendali ternary, kami juga perlu memastikan bahawa kami menggunakan sintaks yang betul dalam konteks sintaksnya. Sebagai contoh, dalam kod berikut, kami cuba memberikan hasil operator ternary kepada ungkapan yang menyalahi undang-undang, mengakibatkan ralat:
int main() { int x = 5; int y = 10; (x > y) ? x : y = max; // 错误:赋值给非法的表达式 return 0; }
Untuk menyelesaikan ralat ini, kami perlu memastikan bahawa apabila menggunakan operator ternary, hasil Assign kepada ungkapan undang-undang, seperti pembolehubah.
Ringkasnya, apabila ralat sintaks C++ "ungkapan utama yang dijangkakan sebelum token ':'" berlaku, kita harus menyemak aspek berikut:
Dengan memberi perhatian kepada butiran ini, kami boleh mengelakkan ralat sintaks C++ biasa ini dan menjadikan kod kami lebih stabil dan boleh dipercayai.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat sintaks C++: 'ungkapan utama yang dijangkakan sebelum ':' token'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!