Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menyelesaikan ralat pengkompil C++: dijangka ';' sebelum token '}'

Menyelesaikan ralat pengkompil C++: dijangka ';' sebelum token '}'

PHPz
PHPzasal
2023-08-25 21:01:4710101semak imbas

解决C++编译器错误:expected ';' before '}' token

Menyelesaikan ralat pengkompil C++: dijangka ';' sebelum token '}'

Apabila membangun menggunakan bahasa pengaturcaraan C++, anda sering menghadapi pelbagai ralat pengkompil. Salah satu ralat biasa ialah "dijangka ';' sebelum token '}'". Ralat ini biasanya berlaku pada penghujung fungsi atau pernyataan bersyarat, bermakna pengkompil dijangka melihat koma bertitik di sana, tetapi sebenarnya mendapat pendakap kerinting penutup.

Ralat ini selalunya disebabkan oleh penulisan kod yang tidak teratur atau pemadanan kurungan yang tidak betul. Beberapa situasi biasa dan penyelesaian yang sepadan akan diberikan di bawah untuk membantu anda menyelesaikan ralat pengkompil ini dengan lebih baik.

  1. Tiada koma bertitik

Apabila menulis kod C++, kita perlu menambah koma bertitik di hujung setiap pernyataan untuk menunjukkan penghujung pernyataan. Jika titik koma tiada, pengkompil akan menggesa ralat "dijangka ';' sebelum token '}'.

Sebagai contoh, koma bertitik pada baris 6 tiada dalam kod di bawah:

#include <iostream>

int main() {
    int a = 1;
    int b = 2;
    
    if (a < b) {
        std::cout << "a小于b" << std::endl;
    } else {
        std::cout << "a大于等于b" << std::endl;
    }  // 此处缺少分号
    
    return 0;
}

Penyelesaiannya mudah, cuma tambah di mana titik koma tiada:

if (a < b) {
    std::cout << "a小于b" << std::endl;
} else {
    std::cout << "a大于等于b" << std::endl;
};  // 添加分号
  1. Kurungan tidak sepadan dengan betul

Satu lagi punca biasa ialah kurungan dalam kod tidak dipadankan dengan betul, menyebabkan pengkompil tidak menghuraikan sintaks kod dengan betul. Dalam kes ini, pengkompil akan menggesa ralat "dijangka ';' sebelum token '}'.

Contohnya, dalam kod di bawah, pendakap kiri hilang dalam pernyataan if:

#include <iostream>

int main() {
    int a = 1;
    int b = 2;
    
    if a < b) {
        std::cout << "a小于b" << std::endl;
    } else {
        std::cout << "a大于等于b" << std::endl;
    }
    
    return 0;
}

Penyelesaian adalah untuk menambah pendakap kiri yang hilang:

if (a < b) {
    std::cout << "a小于b" << std::endl;
} else {
    std::cout << "a大于等于b" << std::endl;
}
  1. Lebihan pendakap kerinting kanan

Kadang-kadang, kita berakhir dengan pendakap kanan berlebihan dalam kod kami Satu atau lebih pendakap kerinting penutup telah ditambahkan, menyebabkan ralat pengkompil. Dalam kes ini, pengkompil akan menggesa ralat "dijangka ';' sebelum token '}'.

Sebagai contoh, dalam kod di bawah, terdapat pendakap kerinting kanan tambahan dalam baris 9:

#include <iostream>

int main() {
    int a = 1;
    int b = 2;
    
    if (a < b) {
        std::cout << "a小于b" << std::endl;
    } else {
        std::cout << "a大于等于b" << std::endl;
    }}  // 多余的右花括号
    
    return 0;
}

Penyelesaian adalah untuk memadam pendakap kerinting kanan tambahan:

if (a < b) {
    std::cout << "a小于b" << std::endl;
} else {
    std::cout << "a大于等于b" << std::endl;
}  // 删除多余的右花括号

Ringkasan:

Apabila menulis kod C++, kita sering menghadapi kepada ralat pengkompil, satu ralat biasa ialah "dijangka ';' sebelum token '}'". Kita boleh menyelesaikan masalah ini dengan menyemak koma bernoktah yang hilang, kurungan yang sepadan dan pendakap kerinting kanan luar. Harap artikel ini dapat membantu anda lebih memahami dan menyelesaikan ralat pengkompil ini.

Atas ialah kandungan terperinci Menyelesaikan ralat pengkompil C++: dijangka ';' sebelum token '}'. 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