日期:2014-05-19  浏览次数:20674 次

请问这种赋值的写法
/**
 * 说明:返回前多少条记录
 * 
 * @param num 条数 当num=0时,则取所有记录
 * @return String
 */
public static String getRowsNumber(int num){
String str = "";
// 值为1 时,为DB2数据库
if(dbType==1){
str = num != 0 ?( " fetch first "+num+" rows only ") :" ";
}else{
str = num != 0 ?(  " rownum <= "+num+" ") :" 1 = 1 ";
}
return str;
}


这是先计算str后的三目运算符,得到一个字符串然后再赋给str吗?

------解决方案--------------------
嗯,是的,先进行三目运算符,如果 num != 0 为true就赋值前面的值,false就赋值后面的值。
------解决方案--------------------
对的。先进行三目运算符,如果 num != 0 为true就赋值前面的值,false就赋值后面的值。
------解决方案--------------------
引用:
str=num != 0 ?( " fetch first "+num+" rows only ") :" "
等价于
if(num!=0){
  str=" fetch first "+num+" rows only ";
}else{
  str="";
}

+正解,单行if else的简写,代码看着直观。