在for循环java之外打印一个数组

时间:2014-04-16 14:54:46

标签: java android arrays wifi

我有一个简单的for循环WIFI信息,我想在循环外使用wifis[i],pleeeease帮助我怎么能这样做,因为它是一个数组!我只能获得数组中的第一个值。

// Setup WiFi
  wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

  // Register Broadcast Receiver
  if (receiver == null)
      receiver = new WiFiScanReceiver(this);

  registerReceiver(receiver, new IntentFilter(
          WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
  Log.d(TAG, "onCreate()");

  ArrayList<ScanResult> wifiScanList = new ArrayList<ScanResult>(wifi.getScanResults());

      wifis = new String[wifiScanList.size()];

    for( int i = 0; i < wifiScanList.size(); i++){
      wifis[i] = ((wifiScanList.get(i).BSSID).toString()+" , "
            + String.valueOf(wifiScanList.get(i).level) +" , " + String.valueOf(wifiScanList.get(i).frequency));
    Log.e("WIFI list", " :  " + wifis[i]);
    }

2 个答案:

答案 0 :(得分:1)

问题不是因为在for循环之外使用了数组本身。它是循环局部变量i,它在循环外不可见。

如果你想在那个循环之外访问数组wifis的某个元素,那么你可以直接提供索引值,如 - wifis[0](第一个元素),或者使用一些变量&#39 ;在那个循环之外可见。

答案 1 :(得分:0)

当你想在某个地方使用数组时,传统上你会在数组内部的每个元素上编写另一个for循环,因为数组是一个接一个的元素集合:

for (int i = 0; i < wifis.length; ++i) {
   Log.e("WIFI list", " :  " + wifis[i]);
}

这样,首先你将使用wifis [0],然后使用wifis [1],然后使用wifis [2] 直到你有了wifis [wifis.length-1],只要有这么多元素。

基本上,你从数组开始,逐个使用,从头到尾。

你也可以写一个for-each-loop:

for (String str : wifis) {
    Log.e("WIFI list", " :  " + str);
}

这基本上意味着“对于wifis中的每个字符串str执行以下操作......”