日期:2014-05-18  浏览次数:20794 次

指出下段程序中的问题?
5.指出下段程序中的问题?(5)
public int getindexofarray(float[] f){
int rtn=-1;
float objf=3.4;
List list=null;
for(int i=0;i<list.size();i++){
list.add(f[i]);
        }
for(int i=0;i<list.size();i++){
float tmp=(float)list.get(i);
if(objf=tmp){
rtn=1;
}
        }
return rtn;
程序中的问题

------解决方案--------------------
list没有初始化。list.add(f[i]);应该会报错!
------解决方案--------------------
List list=null;  // list没有初始化,下行list.size() 空指针
for(int i=0;i<list.size();i++){
    list.add(f[i]);
}
------解决方案--------------------
float tmp=(float)list.get(i); ==>float tmp=(Integer)list.get(i);
if(objf=tmp){ ==> if(objf == tmp){
------解决方案--------------------
public int getindexofarray(float[] f){
int rtn=-1;
float objf=3.4;//需要改为float objf=3.4f,否则会提示double不能转换为float。
List list=null;//链表需要初始化 ,List list=new ArrayList(),否则报空指针异常
for(int i=0;i<list.size();i++){
list.add(f[i]);
}
for(int i=0;i<list.size();i++){
float tmp=list.get(i);//不能将object转换为float,可以改为:float tmp=Float.valueOf(list.get(i).toString())
if(objf=tmp){//需要改为objf==tmp,因为赋值表达式结果为float,if表达式应为boolean.
rtn=1;
}
}
return rtn;
}
------解决方案--------------------
引用:
public int getindexofarray(float[] f){
int rtn=-1;
float objf=3.4;//需要改为float objf=3.4f,否则会提示double不能转换为float。
List list=null;//链表需要初始化 ,List list=new ArrayList(),否则报空指针异常。
for(int i=0;i<list.size();i++){
list.add(f[i]);
}
for(int i=0;i<list.size();i++){



float tmp=list.get(i);//不能将object转换为float,可以改为:float tmp=Float.valueOf(list.get(i).toString())
if(objf=tmp){//需要改为objf==tmp,因为赋值表达式结果为float,if表达式应为boolean.
rtn=1;
}
}
return rtn;
}



全被你答完了
------解决方案--------------------
引用:
Quote: 引用:

public int getindexofarray(float[] f){
int rtn=-1;
float objf=3.4;//需要改为float objf=3.4f,否则会提示double不能转换为float。