能否在三元运算符中使用break、continue关键字?
能否在三元运算符中使用break和continue关键字?
不能。
原因说明
三元运算符属于表达式,语法要求条件 ? 表达式1 : 表达式2中的两个分支都必须是能计算出具体返回值的结构,最终整个三元运算的结果会被用于赋值、传参等场景。
而break和continue属于流程控制语句,本身没有任何返回值,完全不符合三元运算符的语法要求,写进三元运算符里会直接触发编译报错。
你提供的代码问题分析
你示例中的代码:
int variable = 0; for (int i = 0; i < 10; i++) variable = (i % 2 == 0) ? break : variable; System.out.println(variable);
除了三元运算符用break的语法错误之外,还有两个容易踩的坑:
- for循环没有加大括号,只有
variable = ...这一行属于循环体,后面的System.out.println会在循环完全结束后才执行,不属于循环逻辑 - 你写的else分支是返回variable本身,相当于赋值操作
variable = variable,没有任何实际意义
替代实现方案
如果要实现「i为偶数就终止循环,否则继续」的逻辑,直接用普通if判断即可:
int variable = 0; for (int i = 0; i < 10; i++) { if (i % 2 == 0) { break; } // 这里写你原本要给variable赋值的业务逻辑 System.out.println(variable); }
内容的提问来源于stack exchange,提问作者Mestedepsu
相关产品推荐
相关产品推荐

