确实,不过倒是没有溢出,unicorn说的是对的, 只是计算了后两项和......
boolean ? expA:expB;的意思也就是当boolean是true的时候,执行expA,当boolean为false的时候执行expB,就样子的,也就相当 于一个 if else语句if(boolean){ expA;}else{ expB;}
对啊,按说应该是这样的,但是我13楼那段,在n>0为false时能正确执行expB,但是在为true时,执行的结果是expA*expB...
就13楼那个例子,在n>0的时候,改变分号前面的数字,居然会得到不同的结果...而且规律就是倍数关系
这个不是很简单吗?public int sum(int a[],int n){ return n>0?(sum(a,n-1)+a[n-1]):0}这是一个三目运算符加一个简单的递归了相当于:if(n>0){ int sum=0; if (n>0) { for(int i=0;i<n;i++) { sum=sum+a[i]; } return sum; } else { return 0; }}
[此贴子已经被作者于2006-11-28 12:34:58编辑过]
对了,少了一个")",谢谢"开心一科"改正.