如何检查是否从未使用过for循环内的if语句?

时间:2018-06-27 06:19:07

标签: java android

我创建了一种方法来检查用户位置是否靠近建筑物。

因此,我创建了以下方法

private void whereAreYou(final List<location> locations) {
    loadingprogress.setVisibility(View.INVISIBLE);

    for (int i = 0; i < this.cities.size(); i++) {
        final location loc= locations.get(i);
        Location loc1 = mLastLocation;
        Location loc2 = new Location("");
        loc2.setLatitude(loc.getLat());
        loc2.setLongitude(loc.getLng());

        float distanceInMeters = loc1.distanceTo(loc2);
        int distanceInKm = (int) (distanceInMeters / 1000);

        if (distanceInKm <= Integer.parseInt(currentclub.getRadius())) {
            uploadInformationToUserProfile(loc.getName());
        }
    }
}

现在我必须检查一个值是否在if语句内,因为那必须调用另一个方法,但前提是所有值都不适合

2 个答案:

答案 0 :(得分:2)

您可以添加最初设置为false的标志,并在if语句操作代码中将标志设置为true。在该部分代码之后,将其打印到控制台。

然后遍历适当的测试用例,并检查其是否为真。

答案 1 :(得分:1)

添加布尔值标志。

private void whereAreYou(final List<location> locations) {
    loadingprogress.setVisibility(View.INVISIBLE);

    boolean locationMatchFound = false; //boolean flag

    for (int i = 0; i < this.cities.size(); i++) {
        final location loc= locations.get(i);
        Location loc1 = mLastLocation;
        Location loc2 = new Location("");
        loc2.setLatitude(loc.getLat());
        loc2.setLongitude(loc.getLng());

        float distanceInMeters = loc1.distanceTo(loc2);
        int distanceInKm = (int) (distanceInMeters / 1000);
        if (distanceInKm <= Integer.parseInt(currentclub.getRadius())) {
            locationMatchFound = true; //boolean flag set to true if location found

            uploadInformationToUserProfile(loc.getName());
        }
    }
    if (!locationMatchFound){
        //Call your other method.
    }
}