Java中三目运算符

weixin_45424238 2019-11-29 10:51:49
在seter方法里用三目运算报错,是我没有用类型接收还是没有返回类型。大佬指点一下。对三目不是很了解只是知道如果否则
...全文
158 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_45424238 2019-12-01
  • 打赏
  • 举报
回复
引用 4 楼 医手的回复:
你应该是把三目运算当if语句了,两者还是有区别的, if比较自由,没有返回值的要求, 而三目运算冒号两边都必须是值(或者运算后能得到值的表达式),而且这两个值必须类型相同。而且必须要有接收三目运算结果的变量,或当作实参使用。
怎么结帖呀。。。。。。。
weixin_45424238 2019-11-29
  • 打赏
  • 举报
回复
引用 7 楼 医手的回复:
[quote=引用 5 楼 weixin_45424238 的回复:] [quote=引用 4 楼 医手的回复:]你应该是把三目运算当if语句了,两者还是有区别的, if比较自由,没有返回值的要求, 而三目运算冒号两边都必须是值(或者运算后能得到值的表达式),而且这两个值必须类型相同。而且必须要有接收三目运算结果的变量,或当作实参使用。
拿我直接拿string 在前面接收行吗[/quote] 当你不打算使用三目运算的结果时,就说明此处必须要用if语句。
String s = age < 16 ? System.out.println("too young") : age;  
这样依然会报错的,因为冒号的左边没有值 因为println不返回任何值。 如果强行用三目运算要这样写。但这样写反而麻烦了,没有意义
this.age = age < 16 ? 0 : age;
if (this.age == 0) {
    System.out.println("too young");
}
[/quote] 知道了,谢谢你。。。。。。。
医手 2019-11-29
  • 打赏
  • 举报
回复
引用 5 楼 weixin_45424238 的回复:
[quote=引用 4 楼 医手的回复:]你应该是把三目运算当if语句了,两者还是有区别的, if比较自由,没有返回值的要求, 而三目运算冒号两边都必须是值(或者运算后能得到值的表达式),而且这两个值必须类型相同。而且必须要有接收三目运算结果的变量,或当作实参使用。
拿我直接拿string 在前面接收行吗[/quote] 当你不打算使用三目运算的结果时,就说明此处必须要用if语句。
String s = age < 16 ? System.out.println("too young") : age;  
这样依然会报错的,因为冒号的左边没有值 因为println不返回任何值。 如果强行用三目运算要这样写。但这样写反而麻烦了,没有意义
this.age = age < 16 ? 0 : age;
if (this.age == 0) {
    System.out.println("too young");
}
CS_草祭先生 2019-11-29
  • 打赏
  • 举报
回复
三目其实跟if判断流程一样,先是需要判断什么,再得到什么结果。 三目用到了两个符号,问号(?)和冒号(:)。 问号左边为逻辑判断语句,跟if括号内的代码一样,需要明确表示能够得到true或者false的表达式,比如:a==b;a.equals(b)等。 问号右边为所需要得到的结果。 冒号左边为问号左边判断后为true的结果,右边则为false的结果。 示例如下: a==b?1:2。 解析:如果a==b,那么返回值为1,反之返回值为2。
weixin_45424238 2019-11-29
  • 打赏
  • 举报
回复
引用 4 楼 医手的回复:
你应该是把三目运算当if语句了,两者还是有区别的, if比较自由,没有返回值的要求, 而三目运算冒号两边都必须是值(或者运算后能得到值的表达式),而且这两个值必须类型相同。而且必须要有接收三目运算结果的变量,或当作实参使用。
拿我直接拿string 在前面接收行吗
医手 2019-11-29
  • 打赏
  • 举报
回复
你应该是把三目运算当if语句了,两者还是有区别的, if比较自由,没有返回值的要求, 而三目运算冒号两边都必须是值(或者运算后能得到值的表达式),而且这两个值必须类型相同。而且必须要有接收三目运算结果的变量,或当作实参使用。
医手 2019-11-29
  • 打赏
  • 举报
回复
你的想像力太丰富了,你的老师应该没教你可以这样用吧。
abcdefg* 2019-11-29
  • 打赏
  • 举报
回复
age=age<=16?.......... 加一个age=
qybao 2019-11-29
  • 打赏
  • 举报
回复
三目运算
布尔型表达式 ?(真值表达式): (假值表达式)

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧