此程序的运行结果是?import java.util.*;public class HolidaySked{
BitSet sked;

public HolidaySked(){
sked=new BitSet(365);
int[] holiday={1,20,43,48,53,115,131,146,165,166,185,244,286,315,327,359
};
/*int[] holiday={100000,20,43,48,53,115,131,146,165,166,185,244,286,315,327,359
};*/
    for(int i=0;i<holiday.length;i++){
addHoliday(holiday[i]);
}
}

public void addHoliday(int dayToAdd){
sked.set(dayToAdd);
}

public boolean isHoliday(int dayTocheck){
boolean result=sked.get(dayTocheck);
return result;
}



public static void main(String[] arguments){
HolidaySked cal=new HolidaySked();
if (arguments.length>0){
try{
int whichDay=Integer.parseInt(arguments[0]);
if(cal.isHoliday(whichDay)){
System.out.println("Day number"+ whichDay+"is a holiday.");
}else{
System.out.println("Day number"+whichDay+"is not a holiday.");
}
} catch(NumberFormatException nfe) {
System.out.println("Error:"+nfe.getMessage());
}
}
}
}

解决方案 »

  1.   

    首先说运行结果不定
    因为程序要接受参数
    ////////////////////////
    例如:
    java HolidaySked 10
    运行结果为
    Day number10is not a holiday.
    /////////////////////////////////
    再如:
    java HolidaySked w
    运行结果为:
    Error:For input string: "w"
      

  2.   

    该算法作用是判断输入的参数(日期)是不是假日。类HolidaySked的构造方法定义了假日的参数并且把它们放在sked里面,
    然后isHoliday(int dayTocheck)方法用来判断传入的日期是否在sked里面,
    如果是,则返回true,如果不是,则返回fasle.