Comment résoudre l'erreur de syntaxe C++ : « expression primaire attendue avant le jeton : » ?
En programmation C++, les erreurs de syntaxe sont un problème courant. L'une des erreurs courantes est le message d'erreur « expression primaire attendue avant le jeton ':' ». Cette erreur se produit généralement lors de l'utilisation d'expressions conditionnelles et de l'opérateur ternaire. Cet article présentera la cause de cette erreur et donnera la solution correspondante.
Tout d'abord, regardons un exemple de code simple :
int main() { int x = 5; int y = 10; int max = (x > y) ? x : y; return 0; }
Dans le code ci-dessus, nous essayons d'utiliser des expressions conditionnelles et l'opérateur ternaire pour comparer les tailles de x et y, et attribuons la plus grande valeur à la variable max. Cependant, le compilateur a signalé une erreur « expression primaire attendue avant le jeton ':' ». En effet, dans la syntaxe C++, les « ? » et « : » dans l'opérateur ternaire doivent être remplacés par des expressions. Lorsque l'expression après le point d'interrogation est vraie, l'expression après les deux points sera exécutée ; sinon, l'expression avant les deux points sera exécutée ;
Pour résoudre cette erreur, nous devons nous assurer que l'expression conditionnelle utilisée dans l'opérateur ternaire est une expression légale. Les raisons courantes de cette erreur sont les suivantes :
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; }
Pour corriger l'erreur dans les deux cas ci-dessus, il suffit d'utiliser une expression légale à la place de l'expression conditionnelle et de s'assurer d'utiliser la bonne syntaxe.
De plus, lorsque nous utilisons l'opérateur ternaire, nous devons également nous assurer que nous utilisons la syntaxe correcte dans son contexte syntaxique. Par exemple, dans le code suivant, nous essayons d'attribuer le résultat d'un opérateur ternaire à une expression illégale, ce qui entraîne une erreur :
int main() { int x = 5; int y = 10; (x > y) ? x : y = max; // 错误:赋值给非法的表达式 return 0; }
Pour résoudre cette erreur, nous devons nous assurer que lors de l'utilisation de l'opérateur ternaire, le résultat Assign à une expression juridique, telle qu'une variable.
Pour résumer, lorsque l'erreur de syntaxe C++ "expression primaire attendue avant le jeton ':'" se produit, nous devons vérifier les aspects suivants :
En prêtant attention à ces détails, nous pouvons éviter cette erreur de syntaxe C++ courante et rendre notre code plus stable et fiable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!