指出下段程序中的问题?
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;
}
------解决方案--------------------
全被你答完了
------解决方案--------------------