黑马程序员技术交流社区

标题: System.out.print(i < 10 ? " " + i : " " + i); [打印本页]

作者: Akm    时间: 2013-6-4 11:15
标题: System.out.print(i < 10 ? " " + i : " " + i);
本帖最后由 Akm 于 2013-6-4 13:04 编辑
很久以前写的 代码 今天翻来看看  ,额   发现个好玩的,大家来看看  
  1. System.out.print(i < 10 ? "  " + i : " " + i);
复制代码
这语句是什么意思 . 详细解释下 {:soso_e113:}


作者: 闫月乐    时间: 2013-6-4 11:27
……额……应该是当i<10为真时,执行" "+i(" "+i为字符串,加号为连接符号),即输出空格+i,为假则执行" "+i,比如i=3;输出结果就是 3(3前面有个空格)
作者: 萧萧北    时间: 2013-6-4 11:56
  1. class  Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int i=5;
  6.                 System.out.print(i < 10 ? "  " + i : " " + i);
  7.         }
  8. }
复制代码
楼主,你用了一个三元运算符,假如你的i=5,  
i < 10 ? "  " + i : " " + i    这句话就会把i的值带入进行判断,
i<10就输出中间这个i的值,
如果i不小于则输出后面那个i的值,建议楼主把后面那个i换做其他数字(例如11),容易区分
  1. class  Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int i=5;
  6.                 System.out.print(i < 10 ? "  " + i : " " + 11);
  7.         }
  8. }
复制代码

作者: 狂飙的yellow.co    时间: 2013-6-4 12:50
哥们的这道题
  1. System.out.print(i < 10 ? " " + i : " " + i);
复制代码
其中这个用到了三元运算符,这个是必须滴

第二个 " "+i 这个将 int 数据 转换成 string类型的........................所以...........你懂的

不论大还是小 都是输出的是 i

—————————————————————————————————————华丽的分割线———————————————————————————————————————————

作者: 若辰    时间: 2015-2-27 19:24
当i<10 为 空格i  其他情况也为 空格i  
+是作为连接符 这个最好是后面的i换成别的字母就好区分了,要不然答案都一样




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2