C语言中三元表达式使用break/continue报错原因咨询
问题原因解析
C语言的三元条件运算符(?:)要求它的两个分支必须是表达式,但break和continue属于流程控制语句,并非表达式,这就是报错的核心原因。
表达式是能生成具体值的代码片段(比如count + 1、a > b),但break/continue仅用于控制程序执行流程,不会产生任何返回值,完全不符合三元运算符的语法要求。
正确写法示例
你可以把这段代码改成if-else结构,这才是处理这类流程分支的标准方式:
while(1) { // other stuff if(count >= 10) { break; } else { continue; } }
如果这段分支在循环末尾,还能进一步简化(因为循环末尾本来就会自动进入下一次迭代,continue可以省略):
while(1) { // other stuff if(count >= 10) { break; } }
内容的提问来源于stack exchange,提问作者Bharat Dravid
相关产品推荐
相关产品推荐

