Java if-then 语句中的变量初始化
Java variable initialization in if-then statement
我有这段代码可以通过切换按钮关闭 Wifi。我还想拥有它,这样如果用户在按下按钮之前已经打开了 Wifi,则 Wifi 会在关闭切换按钮后重新打开。这是通过 wifiON boolean
完成的。但是,由于该变量是在 if 语句的第一部分初始化的,因此它不会被 else 语句使用。我如何设置它,以便 else 语句可以从 if 语句中获取布尔值。下面是代码。
public void airplaneClicked (View view) {
boolean on = ((ToggleButton) view).isChecked();
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
boolean wifiOn;
if (on) {
if (wifi.isWifiEnabled()) {
wifiOn = true;
Log.v("", "" + wifiOn);
wifi.setWifiEnabled(false);
} else {
wifiOn = false;
Log.v("", "" + wifiOn);
}
}
else {
if (wifiOn == true) {
wifi.setWifiEnabled(true);
}
}
}
如果您在 if-else 的两个部分都需要 wifiOn
的值,请将其移至 if-else 之前。
if (wifi.isWifiEnabled()) {
wifiOn = true;
} else {
wifiOn = false;
}
if (on) {
if (wifi.isWifiEnabled()) {
Log.v("", "" + wifiOn);
wifi.setWifiEnabled(false);
} else {
Log.v("", "" + wifiOn);
}
}
else {
if (wifiOn == true) {
wifi.setWifiEnabled(true);
}
}
//Use additional boolean - wifiState
boolean wifiState = wifi.isWifiEnabled();
if (on) {
if (wifiState) {
wifiState = true;
Log.v("", "" + wifiOn);
wifi.setWifiEnabled(false);
} else {
wifiState = false;
Log.v("", "" + wifiOn);
}
}
else {
if (wifiState) {
wifi.setWifiEnabled(true);
}
}
wifi.setWifiEnabled(!wifi.isWifiEnabled());
我有这段代码可以通过切换按钮关闭 Wifi。我还想拥有它,这样如果用户在按下按钮之前已经打开了 Wifi,则 Wifi 会在关闭切换按钮后重新打开。这是通过 wifiON boolean
完成的。但是,由于该变量是在 if 语句的第一部分初始化的,因此它不会被 else 语句使用。我如何设置它,以便 else 语句可以从 if 语句中获取布尔值。下面是代码。
public void airplaneClicked (View view) {
boolean on = ((ToggleButton) view).isChecked();
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
boolean wifiOn;
if (on) {
if (wifi.isWifiEnabled()) {
wifiOn = true;
Log.v("", "" + wifiOn);
wifi.setWifiEnabled(false);
} else {
wifiOn = false;
Log.v("", "" + wifiOn);
}
}
else {
if (wifiOn == true) {
wifi.setWifiEnabled(true);
}
}
}
如果您在 if-else 的两个部分都需要 wifiOn
的值,请将其移至 if-else 之前。
if (wifi.isWifiEnabled()) {
wifiOn = true;
} else {
wifiOn = false;
}
if (on) {
if (wifi.isWifiEnabled()) {
Log.v("", "" + wifiOn);
wifi.setWifiEnabled(false);
} else {
Log.v("", "" + wifiOn);
}
}
else {
if (wifiOn == true) {
wifi.setWifiEnabled(true);
}
}
//Use additional boolean - wifiState
boolean wifiState = wifi.isWifiEnabled();
if (on) {
if (wifiState) {
wifiState = true;
Log.v("", "" + wifiOn);
wifi.setWifiEnabled(false);
} else {
wifiState = false;
Log.v("", "" + wifiOn);
}
}
else {
if (wifiState) {
wifi.setWifiEnabled(true);
}
}
wifi.setWifiEnabled(!wifi.isWifiEnabled());