A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐龙飞 中级黑马   /  2013-7-30 22:21  /  1161 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-31 23:16 编辑

今天碰到一面试题:int x=1;return x==1?true:false;看了半天没看出有什么不妥,百度了下说是返回值不对,结果还是不明白。哪位大神能给解释下,小弟不胜感激呀!

5 个回复

倒序浏览
没问题,结果是true,你可以自己写写代码,验证一下。
  1. <p>public class Test2 {
  2. public static void main(String[] args) {
  3.   
  4.   System.out.println(getResult(1));</p><p> }</p><p> public static boolean getResult(int x){
  5.    return x==1?true:false;
  6. }
  7. }
  8. </p><p> </p>
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 肖博文 于 2013-7-30 22:55 编辑


public class Demo{

public static boolean demo(){
  int x = 1;
  
  /*
   * 代码本身没有问题。但在开发中我们应该对代码进行优化。
   * 个人认为面试考的是是否有这方面的意识,并不仅仅是代码的正确性。
   * 优化如下:
   *  (1)== 本身就是个比较运算符,其结果是boolean类型。
   *  (2)而程序中要返回的也是boolean类型,所以不必再使用三元运算符了
   *  (3)优化后的代码 return x == 1 ;
   * */
  return x == 1 ? true : false;
}
public static void main(String[] args){
  boolean flag = demo();
  System.out.println(flag);
}
}

1.JPG (30.75 KB, 下载次数: 0)

1.JPG

评分

参与人数 1技术分 +2 收起 理由
杨兴庭 + 2 赞一个!

查看全部评分

回复 使用道具 举报
解释的很好必须顶一下楼上{:soso_e100:}
回复 使用道具 举报
x==1本来就是boolean型,直接return x==1即可
回复 使用道具 举报
x==1 结果为 true 然后返回true
如果x!=1 结果为false 然后返回false
因为x==1的结果就是boolean布尔类型 前面跟return 返回 所以没有必要再让它选 true 还是 false 了
但是那样写的话也不能说错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马