Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的For循环在播放器数组中查找播放器对象_Java_Loops_For Loop - Fatal编程技术网

java中的For循环在播放器数组中查找播放器对象

java中的For循环在播放器数组中查找播放器对象,java,loops,for-loop,Java,Loops,For Loop,我正在学习java,现在正在研究循环。我编写了以下代码: players[0] = new Player(1, "Paul", "Point Guard"); players[1] = new Player(24, "Bryant", "Shooting Guard"); players[2] = new Player (6, "James", "Small Foward"); players[3] = new Player (21, "Duncan", "Power Foward"); pla

我正在学习java,现在正在研究循环。我编写了以下代码:

players[0] = new Player(1, "Paul", "Point Guard");
players[1] = new Player(24, "Bryant", "Shooting Guard");
players[2] = new Player (6, "James", "Small Foward");
players[3] = new Player (21, "Duncan", "Power Foward");
players[4] = new Player (12, "Howard", "Center"); 
players[5] = new Player (6, "Erving", "Small Foward");


public String name()
{   
    int number = readNumber(); // read in the number
    String s = "";
    for(Player player: players){
        // check if input number match with any number of the players
        if(player.numberMatches(number))        
            s += player.getName() + " ";
        else s = error();
    }
    return s;
}
error()方法只是返回一个“没有玩家有这个号码” 我的阵型中有两个玩家的号码相同;当我调用name()时,它返回“没有任何玩家具有此名称服务” 我已尝试删除else语句,所有工作正常。为什么?
有人能帮我吗?

因为每次玩家的号码与给定的号码不匹配时,您都会重新分配
s

这在逻辑上是不正确的,并且每次玩家的号码不匹配时,都会有效地删除所有已找到的玩家。试试这样吧

public String name()
{   
    int number = readNumber(); // read in the number
    String s = "";
    for(Player player : players){
        // check if input number match with any number of the players
        if(player.numberMatches(number))        
            s += player.getName() + " ";
    }
    return s.equals("") ? error() : s;
}

我们需要查看播放器代码以及方法的声明:readNumber()。当然可以!!谢谢,这很有道理!!你的解决方案很有效。现在我得弄清楚你的回报声明是什么意思。。我还没有学会这个语法,但是谢谢你的帮助!当然它被称为“三元运算符”,因为它需要三个操作数<代码>a?b:c表示如果a为真,则返回b,否则返回c。这是因为如果没有找到播放机,则
s.equals(“”
为真,因此三元运算符返回
error()