新手学习java,用ifelse比较三元大小,这样写可以吗?

菜鸟相印 2020-02-04 12:52:54


这样写繁琐吗?请教下大神,第一次学习java自己写的,感动到凌晨1点睡不着,想问问各位!
...全文
310 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2020-02-06
  • 打赏
  • 举报
回复
楼主你是想要问有没有更简单的ifelse写法? 还是想问有没有更好的实现方式? 如果是属于第一种那3楼的答复应该是最简洁明了的,但是你的示例中只有3个数来比较,如果有5、8、10个甚至更多呢?那就要考虑使用更好的实现方式了,比如:排序
maradona1984 2020-02-05
  • 打赏
  • 举报
回复
你这逻辑有点混乱,仅仅是判断最大值是谁,只需要判断这个值是否大于所有其他数而已,整那么多分支你绕晕自己么? 简单代码写在下面,如果相等按a,b,c顺序来确定最大值,如果不考虑等于的情况,去掉=也是可以的 你的问题是判断的标准不够统一,a>b && b>c的确是a最大,但直接a>c不就完全囊括所有a最大的场景?同理,b,c也是如此

if(a>=b && a>=c){
    System.out.println("最大值为a")
}else if(b>a && b>= c){
    System.out.println("最大值为b")
}else{
    System.out.println("最大值为c")
}
qybao 2020-02-04
  • 打赏
  • 举报
回复
String max = a>b ? (a>c ? "a" : "c") : (b>c ? "b" : "c");
System.out.println("最大值为"+max);
sh_c_1314 2020-02-04
  • 打赏
  • 举报
回复
你好像要的是字符串a/b/c输出 1 你说的ifelse形式 if(a>b){   if(a>c){System.out.println("最大值为a");}   else{System.out.println("最大值为c");} }elae{   if(b>c){System.out.println("最大值为b");}   else{System.out.println("最大值为c");} } 2 三目运算 int max =a>b?a:b;//a>b则max=a,否则,赋值b char result=a>b?'a':'b'; if(max>c){System.out.println("最大值为"+result); }else{System.out.println("最大值为c");}
sh_c_1314 2020-02-04
  • 打赏
  • 举报
回复
感觉有点麻烦了,为啥不先比较a,b找出大的,在与c比较大小。 1 你说的ifelse形式 if(a>b){ if(a>c){System.out.printl("最大值为"+a);} else{System.out.printl("最大值为"+c);} }elae{ if(b>c){System.out.printl("最大值为"+b);} else{System.out.printl("最大值为"+c);} } 2 三目运算 int max =a>b?a:b;//a>b则max赋值为a,否则,赋值为b int result=max>c?max:c; System.out.printl("最大值为"+result);
yety123 2020-02-04
  • 打赏
  • 举报
回复
3楼正解,简单

62,621

社区成员

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

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