[英]How to loop string array in for loop
我想知道如何执行for循环来执行for循环,以便根据用户输入的玩家数量在骰子的旁边显示玩家的名字。
if (num_of_players == 1) {
players[0] = player1;
}
if (num_of_players == 2) {
players[0] = player1;
players[1] = player2;
}
if (num_of_players == 3) {
players[0] = player1;
players[1] = player2;
players[2] = player3;
}
if (num_of_players == 4) {
players[0] = player1;
players[1] = player2;
players[2] = player3;
players[3] = player4;
}
if (num_of_players == 5) {
players[0] = player1;
players[1] = player2;
players[2] = player3;
players[3] = player4;
players[4] = player5;
}
if (num_of_players == 6) {
players[0] = player1;
players[1] = player2;
players[2] = player3;
players[3] = player4;
players[4] = player5;
players[5] = player6;
}
for (String y : players) {
JOptionPane.showMessageDialog(null, "The first dice rolls " + y);
由于您已经有6个player
变量,您可以将它们放入数组中,然后复制数组的一部分。 不需要显式循环:
String[] aPlayers = {player1, player2, player3, player4, player5, player6};
System.arraycopy(aPlayers, 0, players, 0, num_of_players);
请注意,您只设置第一num_of_players
元素players
,您将有null
元素末(或任何恰好是这些元素的话); 并且for循环仍会遍历这些元素。
如果这不是您想要的,则可能需要考虑为players
分配一个较小的列表:
players = Arrays.copyOfRange(aPlayers, 0, num_of_players);
或者,您可以将数组包装在列表中并获取一个子列表:
for (String y : Arrays.asList(players).subList(0, num_of_players)) {
不确定循环是否适用于此,但由于每个块都重复了先前的工作,因此这种简化是可能的...
if (num_of_players == 1) {
players[0] = player1;
}
if (num_of_players >= 2) {
players[1] = player2;
}
if (num_of_players >= 3) {
players[2] = player3;
}
if (num_of_players >= 4) {
players[3] = player4;
}
if (num_of_players >= 5) {
players[4] = player5;
}
if (num_of_players >= 6) {
players[5] = player6;
}
解决此问题的另一种方法是创建一个数组并将其与循环一起使用。 更好的是player1,player2变量将是一个数组。
String [] playersArray = {player1, player2, player3, player4, player5, player6};
for (int i = 0; i< num_of_players; i++) {
players[i] = playersArray[i];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.