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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tian139753 中级黑马   /  2015-8-27 23:26  /  1161 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class wenTi
{
        public static void main(String[] arge)
        {
                int a=5;
                int b=6;
                int sum;
                sum=a>b?a=a+b:b=a*b;
                System.out.println("sum="+sum);
        }
}

帮忙看看为什么编译出错???

21 个回复

倒序浏览
错在三元表达式,应该是sum=a>b?a+b:a*b;
你的思路是将后面的值赋给sum。你可以将三目表达式转成if..else语句来排错。望采纳
回复 使用道具 举报
最好还是把三元表达式中的返回值用括号括起来,当做一个整体.
比如这样sum=a>b?(a=a+b):(b=a*b);
回复 使用道具 举报
a=a+b和b=a*b再通过三元运算符,类型不对。。。一楼就是正解
回复 使用道具 举报
sum=a>b?a=a+b:b=a*b;
错了,
回复 使用道具 举报
一楼是对的。。。
回复 使用道具 举报
sum=a>b?a=a+b:b=a*b;     a=a+b,b=a*b;为啥用等号?
回复 使用道具 举报
liudongcan 发表于 2015-8-28 00:04
错在三元表达式,应该是sum=a>b?a+b:a*b;
你的思路是将后面的值赋给sum。你可以将三目表达式转成if..else语 ...

我就是不明白  那样为什么出错的
回复 使用道具 举报
Morrfree 发表于 2015-8-28 00:36
最好还是把三元表达式中的返回值用括号括起来,当做一个整体.
比如这样sum=a>b?(a=a+b):(b=a*b);
...

额   关键是冒号后面的要加
回复 使用道具 举报
STARlove 发表于 2015-8-28 00:48
a=a+b和b=a*b再通过三元运算符,类型不对。。。一楼就是正解

额   查了下  说是运算符优先级的问题
回复 使用道具 举报
Ci功 发表于 2015-8-28 07:31
sum=a>b?a=a+b:b=a*b;
错了,

编译的时候知道错了  只是当时不理解
回复 使用道具 举报
血马雄风 发表于 2015-8-28 09:41
sum=a>b?a=a+b:b=a*b;     a=a+b,b=a*b;为啥用等号?

想法就是先等号后面的值先赋给左边
回复 使用道具 举报
liudongcan 发表于 2015-8-28 00:04
错在三元表达式,应该是sum=a>b?a+b:a*b;
你的思路是将后面的值赋给sum。你可以将三目表达式转成if..else语 ...

是可以  但就是想知道这样为什么错了
回复 使用道具 举报
  1. sum=a>b?a=a+b:b=a*b;
  2. //写成if...else是
  3. if(a>b){
  4. sum = a=a+b;//这明显是有问题的
  5. }else{
  6. sum = b=a*b;//这也一样
  7. //加括号就是
  8. sum=(b=a*b);// ok的
  9. //或者是
  10. sum = a*b
  11. }
复制代码
回复 使用道具 举报
学习了,谢谢分享
回复 使用道具 举报
是代码优先级问题
int a=5,b=6;
a>b?a:b=1;相当于(a>b?a:b)=1;即6=1,所以提示   需要变量,是值
回复 使用道具 举报
sum=a>b?a=a+b:b=a*b;这句话逻辑矛盾了 sum你等于的啥?你可以拆开写
回复 使用道具 举报
优先级        描述        运算符
1        括号        ()、[]
2        正负号        +、-
3        自增自减,非        ++、--、!
4        乘除,取余        *、/、%
5        加减        +、-
6        移位运算        <<、>>、>>>
7        大小关系        >、>=、<、<=
8        相等关系        ==、!=
9        按位与        &
10        按位异或        ^
11        按位或        |
12        逻辑与        &&
13        逻辑或        ||
14        条件运算        ?:
15        赋值运算        =、+=、-=、*=、/=、%=
16        位赋值运算        &=、|=、<<=、>>=、>>>=
回复 使用道具 举报
tian139753 发表于 2015-8-28 22:24
额   查了下  说是运算符优先级的问题

加油。。。。。。。。。。。。。。。。。。。。。。。。。。{:3_57:}
回复 使用道具 举报
Boint 中级黑马 2015-8-28 23:30:55
20#
运算符优先级有错
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马