Eclipse中的if语句 [英] if statement in Eclipse
问题描述
我正在使用if语句来获取设备周围wifi信号的某些特定信息,但是当我尝试使用d1,d2和d3之外的if语句时,它显示了错误吗? 知道如何解决这个问题
I am using if statement to get some specific information of the wifi signal surrounded my device but when I tried to use that values which are d1,d2 and d3 out side the if statement it shows me an error? any idea how to solve this
这是我使用的代码:
for (ScanResult result: results) {
String NAME = result.SSID;
if (NAME.equals("rubelwifii" )) {
float s1=result.level;
float d1 =30*(1-(2*(s1+100)/100));
System.out.println(result.SSID.toString());
System.out.println(s1);
System.out.println(d1);
}
if (NAME.equals("ABDULHAKEEM" )) {
float s2=result.level;
float d2 =30*(1-(2*(s2+100)/100));
System.out.println(result.SSID.toString());
System.out.println(s2);
System.out.println(d2);
}
if (result.SSID.equals("shamwifi" )) {
float s3=result.level;
float d3 =30*(1-(2*(s3+100)/100));
System.out.println(result.SSID.toString());
System.out.println(s3);
System.out.println(d3);
}
float distanc = d1+d1+d3;
System.out.println(distanc);
推荐答案
一些改进:
您不应该比较NAME.equals("ABDULHAKEEM"),因为NAME可能为null,这将引发异常.
You shouldn't compare NAME.equals("ABDULHAKEEM" ) because NAME might be null, which would throw an exception.
您不需要执行result.SSID.toString(). result.SSID已经是一个字符串.
You don't need to do result.SSID.toString(). result.SSID is already a String.
使用else ifs提高速度(如果第一次匹配,则无需再检查2次).
Use else ifs to improve the speed (don't need to check another 2 times if the first time was a match).
float s1=0;
float d1=0;
float s2=0;
float d2=0;
float s3=0;
float d3=0;
for (ScanResult result: results) {
String name = result.SSID;
if ("rubelwifii".equals(name)) {
s1=result.level;
d1 =30*(1-(2*(s1+100)/100));
System.out.println(result.SSID);
System.out.println(s1);
System.out.println(d1);
}
else if ("ABDULHAKEEM".equals(name)) {
s2=result.level;
s2 =30*(1-(2*(s2+100)/100));
System.out.println(result.SSID);
System.out.println(s2);
System.out.println(d2);
}
else if ("shamwifi".equals(name)) {
s3=result.level;
d3 =30*(1-(2*(s3+100)/100));
System.out.println(result.SSID);
System.out.println(s3);
System.out.println(d3);
}
else {
System.out.println("name ["+name+"] was not one of the known spots");
}
}
float distanc = d1+d1+d3;
System.out.println(distanc);
这篇关于Eclipse中的if语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!