黑马程序员技术交流社区
标题:
三元运算符问题,求解答
[打印本页]
作者:
宋旭东
时间:
2013-7-2 22:51
标题:
三元运算符问题,求解答
在编程中想输出一个大于大于9 就输出16进制数的问题。demo程序如下:class Demo1
{
public static void main(String[] args)
{
int a = 80;
int temp = a >> 4;
int b = temp & 15;
(b >= 10)?(System.out.println((b - 10) + 'A'):(System.out.println(b) );
/*if(b >= 10)
{
System.out.println((char)(b-10)+'A');
}
else
{
System.out.println(b);
}
int test;
test = (b>=10)?(char)(b-10)+'A':b;
System.out.println(test);*/
}
}
在编译中会出现错误提示
D:\java0327\day04>javac Demo1 .java
ArrayTest1.java:14: 错误: 不是语句
(b >= 10)?(System.out.println((b - 10) + 'A')):( System.out.println(b) );
^
1 个错误
为什么不能这样使用三元运算符?在C语言中是支持这样的操作啊?请大师指导!
作者:
黄少海
时间:
2013-7-2 23:03
本帖最后由 黄少海 于 2013-7-3 00:08 编辑
(b >= 10)?(System.out.println((b - 10) + 'A')System.out.println(b) ); ?后面的值1 和值2 必须是能转换成通一类型的数据。语句中明显是控制台输出。所以语法错误哦。
作者:
mo﹎雲℡
时间:
2013-7-2 23:29
这位同学,三元运算符必须要接收后面运算的结果。
例如:
int test
= (b>=10)?(char)(b-10)+'A':b; 就像你后面写的那样。
同学努力吧~~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2