黑马程序员技术交流社区

标题: 关于三元运算的小问题 [打印本页]

作者: ぐ⒏夠淘氣    时间: 2013-10-10 14:37
标题: 关于三元运算的小问题
本帖最后由 ぐ⒏夠淘氣 于 2013-10-10 15:07 编辑

在三元运算中,类型是只有布尔型的吧?(不知道这个是不是这么理解的?)
下面是个小小的程序的代码有个小小的问题:

以上的运行结果是正确的,但是我又试了下吧string换成char来定义变量z,结果就不行了,无论冒号那里怎么改怎么换结果都不对,可是我用int去接收时把冒号前后换成数字结果就可以显示正常,那为什么就是char不可以呢?要不是非法转换要不是不兼容的类型,这是为什么呢?
难道在三元运算中不可以用char?


作者: 喝龙血的我    时间: 2013-10-10 14:56
  1.         public static void main(String[] args) {
  2.                 // TODO Auto-generated method stub
  3.                 int x=1;
  4.                 int y=10;
  5.                 char z=x==y?'a':'d';
  6.                 System.out.println(z);

  7.         }
复制代码
可以运行啊   你运算的结果是什么,你用什么接收就对了,你应该用char接收的双引号把,那是字符串不是字符了
作者: 卜弦    时间: 2013-10-10 15:03
你这样操作实际上是把问号后面双引号中的内容赋给z。即:x==y吗?等于就把“==”给z,不等于就把“!=”给z。但是z被你定义为了char类型。只能用单引号‘’。用双引号就成了字符串了得用String
作者: ぐ⒏夠淘氣    时间: 2013-10-10 15:06
哦,我打的是双引号……
作者: FFF    时间: 2013-10-10 15:26
使用Char要使用单引号'',不能使用双引号。




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