日期:2014-05-20  浏览次数:20817 次

小弟在使用三目运算符时不得要领,老是出错,请各位进来指点一二.
//程序如下,不知道三目运算符不是这样用的,提示?为意思的数据类型.
public   class   aa
{
public   static   void   main(String   args[])
{
final   int   size=10;
int   max,min,i;
int   arr[]=new   int[size];
for(i=0;i <size;i++)
{
arr[i]=(int)(Math.random()*100);
}
for(i=0;i <size;i++)
{
System.out.println(arr[i]);
arr[i]> max   ?   max=arr[i]:max=max;
arr[i] <min   ?   min=arr[i]:min=min;
}
System.out.println( "最大值= "   +   max);
System.out.println( "最小值= "   +   min);
}
}

------解决方案--------------------
三目运算符的语法格式:

boolean-exp ? value0 : value1;

换成if-else解释:

if(boolean-exp)
return value0;
else
return value1;

即boolean-exp为真,操作符返回value0,否则返回value1

max = (arr[i]> max ? arr[i]:max);语句中,先进行三目运算,然后
把返回的值赋给max