public PageControl(HttpServletRequest rq,int totalRecord,int pagesize){
this.page=rq.getParameter("page");
if(page==null)nowPage  =1;      
else
{   
nowPage  =Integer.parseInt(page);      
 if(nowPage<1)  nowPage  =  1; 
 }
this.pageSize=pagesize;
this.totalRecord=totalRecord;
this.pageCount=this.totalRecord%pageSize==0?this.totalRecord/pageSize:this.totalRecord/pageSize+1;
this.pagename=rq.getRequestURI();
}this.pageCount=this.totalRecord%pageSize==0?this.totalRecord/pageSize:this.totalRecord/pageSize+1;这句看得有点晕了!%号?号是什么意思呀???

解决方案 »

  1.   

    这么写你应该看的懂了:
    if(this.totalRecord%pageSize==0){
        this.pageCount=this.totalRecord/pageSize;
    }else{
        this.pageCount=this.totalRecord/pageSize+1; }
    %是指取余操作
      

  2.   

    2楼的就是那段代码的意思。那个你看不懂的是java提供的三元运算符。
    xx1?xx2:xx3
    意思就是xx1 是布尔表达式,如果是true就xx2 ,如果是false就计算 xx3
      

  3.   

    其实这里是通过一个三目运算符来连接的“?:"它是c语言中的条件运算符,而且也只有一种。
    那么什么叫三目运算符呢:也就是需要三个操作数的运算符。它的作用:a?b:c
    当为真的时候,运算的结果为b,否则为c。
    因此,在这个运算符中的第一个操作数必须是逻辑类型,即逻辑运算或关系运算的结果。你可以到网上查一下C的运算符表就会知道了。
    http://hi.baidu.com/webtop1/blog/item/ca72473dc8542fe83c6d9737.html所以你这里的这句可以分解一下
    this.pageCount=(this.totalRecord%pageSize==0)?(this.totalRecord/pageSize):(this.totalRecord/pageSize+1); 
    第一个操作数:this.totalRecord%pageSize==0  "%"是求余看结果是否为0。 "=="是关系运算符。
    第二个操作数:this.totalRecord/pageSize "/"是整除
    第三个操作数:this.totalRecord/pageSize+1 和第二个是一样的。