Java:Do语句中的For语句?

Java:Do语句中的For语句?,java,for-loop,do-while,Java,For Loop,Do While,这与我的另一个问题有关 当此方法运行时,系统不会打印任何内容。通过一系列打印测试,我确定它进入do while循环。我不确定它是否进入了for循环。您的物品可能包含一些东西,但您的武器可能是空的。在这种情况下,您的代码似乎没有任何作用。从这里开始: public void equipWithWeapon(String weapon) { if (items.isEmpty() && weapons.isEmpty()) { System.out.print

这与我的另一个问题有关


当此方法运行时,系统不会打印任何内容。通过一系列打印测试,我确定它进入
do while
循环。我不确定它是否进入了
for
循环。

您的物品可能包含一些东西,但您的武器可能是空的。在这种情况下,您的代码似乎没有任何作用。

从这里开始:

public void equipWithWeapon(String weapon) {
    if (items.isEmpty() && weapons.isEmpty()) {
        System.out.println("You are not carrying anything.");
        return;
    }

    String foundWeapon = findWeapon(weapon);
    if (foundWeapon == null) {
        System.out.println("You cannot equip \"" + weapon + "\", or you do not have it.");
    }

    System.out.println("You equip " + foundWeapon + ".");
}

private String findWeapon(String weapon) {
    for (String s : weapons) {
        if (s.contains(weapon)) {
            return s;
        }
    }
    return null;
}

你试过使用调试器而不是打印语句吗?读起来很混乱,而且充满了各种命名约定。但是如果有任何武器,它会进入
for
循环。@QuanChi所以这是唯一的问题吗?@QuanChi因为你是新来的,请不要忘记标记接受的答案,这对解决问题最有帮助。另见
public void equipWithWeapon(String weapon) {
    if (items.isEmpty() && weapons.isEmpty()) {
        System.out.println("You are not carrying anything.");
        return;
    }

    String foundWeapon = findWeapon(weapon);
    if (foundWeapon == null) {
        System.out.println("You cannot equip \"" + weapon + "\", or you do not have it.");
    }

    System.out.println("You equip " + foundWeapon + ".");
}

private String findWeapon(String weapon) {
    for (String s : weapons) {
        if (s.contains(weapon)) {
            return s;
        }
    }
    return null;
}