如果在日食中的声明 [英] if statment 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次)。 / p>
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);
这篇关于如果在日食中的声明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!