资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

大家帮我看看这个程序为什么会出现这样的报错信息吧!

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

import   java.io.*;  
  import   java.lang.  
   
  public   class   fsearch{  
   
  public   static   int   Max=20;  
  public   static   int[]   Data=  
  {  
  12,16,19,22,25,  
  32,39,48,55,57,  
  58,63,68,69,70,  
  78,84,88,90,97  
  };  
  public   static   int   Counter=1;  
  public   static   void   main(String   args[]){  
   
  int   FinA;                                                        
  FinA=1;  
  int   KeyValue;  
  while(Fib(FinA)<=Max){  
  FinA++;  
  }  
  System.out.print("Please   enter   your   key   value   :");  
          BufferedReader   br=new   BufferedReader(new   InputStreamReader(System.in));  
          try{  
          KeyValue=Integer.parseInt(br.readLine());  
          }catch(IOException   e){  
          }  
          if(FibonacciSearch(FinA,KeyValue)){  
          System.out.println("");  
          System.out.println("Search   Time   ="+Counter);  
           
          }  
          else{  
           
          System.out.println("");  
          System.out.println("No   Found!!");  
           
          }  
           
           
          }  
           
   
   
   
   
  //------------------------------------------------------------  
  //  
  //------------------------------------------------------------  
  public   static   int   Fib(int   N){  
  if(N<=1)  
  return   N;  
  else  
  return   Fib(N-1)+Fib(N-2);  
  }  
  //------------------------------------------------------------  
  //  
  //------------------------------------------------------------  
  public   static   boolean   FibonacciSearch(int   n,int   KeyValue){  
  int   Root;  
  int   Distance_1;  
  int   Distance_2;  
  int   Temp;  
   
  Root=Fib(n-1);  
  Distance_1=Fib(n-2);  
  Distance_1=Fib(n-3);  
   
  do{  
  if(KeyValue<Data[Root-1]){  
  Root=Root-Distance_2;  
  Temp=Distance_1;  
  Distance_1=Distance_2;  
  Distance_2=Temp-Distance_2;  
   
  }  
  else   if(KeyValue>Data[Root-1]){  
  Root=Root+Distance_2;  
  Distance_1=Distance_1-Distance_2;  
  Distance_2=Distance_2-Distance_1;  
   
  }  
  else   if(KeyValue==Data[Root-1]){  
  System.out.println("Data["+(Root-1)+"]="+Data[Root-1]);  
  return   true;  
   
  }  
  Counter++;  
  }while(Distance_2>=0);  
  return   false;  
   
  }  
  }

网友回答:

发表者:brucejia

int   KeyValue;没有指定初值,如果KeyValue=Integer.parseInt(br.readLine())抛出异常怎么办,而且少打出一条出错日志,无法得知KeyValue=Integer.parseInt(br.readLine())是否抛出异常

发表者:liuyb94242

不像全局变量,局部变量申明时就要初始化。

发表者:zjm66688

如果循环体内都不满足条件,那么Distance_2就没有被赋值,“while(Distance_2>=0)”就会出错了  
 

发表者:shmiluwei

没初始化,,要是         try{  
          KeyValue=Integer.parseInt(br.readLine());  
          }catch(IOException   e){  
          }  
  抛出异常了,,!!!???


 

 
热门推荐笔记本: 戴尔笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved