三元运算符使用问题:VSCode提示‘expected expression’错误排查
三元运算符使用错误导致编译失败的问题分析
你遇到的是代码语法问题,和VSCode无关。
问题出在你使用三元运算符的代码行:
(afterCalc == 1)? goto calcStart : continue;
C++的三元运算符?:要求两个分支必须是能产生值的表达式,而goto calcStart和continue都属于流程控制语句,并不具备返回值的特性,完全不符合三元运算符的语法规则,因此编译器会抛出expected expression的错误提示。
这类流程控制场景,正确的写法还是用if/else语句:
cout << endl << "1. Another equation" << endl << "2. Exit Calculator" << endl; int afterCalc; cin >> afterCalc; if (afterCalc == 1) { goto calcStart; } else { continue; }
总结来说,三元运算符的核心作用是根据条件返回不同的值,而非执行不同的流程控制逻辑,这类场景直接使用if/else才是符合语法规范的做法。
内容的提问来源于stack exchange,提问作者pszym
相关产品推荐
相关产品推荐

