java中的For循环在播放器数组中查找播放器对象
我正在学习java,现在正在研究循环。我编写了以下代码: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
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()
。