我正在尝试创建一个for循环,允许用户输入多个玩家名称(最多6个)并将每个玩家名称存储在一个变量(playerone,playertwo等;)中,并在每个提示名称之间存储应询问用户是否要输入其他玩家的姓名。我编写了for循环,但无法计算如何将每个输入分配给字符串变量。如果用户在对话框中选择“否”,则应该中断for循环。
if (text.equals(play)) {
{
{
String Playerone = JOptionPane.showInputDialog(null, "Enter Player 1:");
textArea.append("Player 1: " + Playerone);
for (i = 2; i <= 6; i++) {
int n2 = JOptionPane.showConfirmDialog(null, "Enter another player?", "",
JOptionPane.YES_NO_OPTION);
if (n2 == JOptionPane.YES_OPTION) {
JOptionPane.showInputDialog(null, "Enter Player " + i + "\n");
textArea.append("Player " + i + ":" + "\n");
}
if (n2 == JOptionPane.NO_OPTION) {
}
}
}
}
}
答案 0 :(得分:0)
if (n2 == JOptionPane.YES_OPTION) {
JOptionPane.showInputDialog(null, "Enter Player " + i + "\n");
textArea.append("Player " + i + ":" + "\n");
}else
if (n2 == JOptionPane.NO_OPTION) {
break;
}
使用此替换for循环中的ifs,它应该可以正常工作。你不能拥有动态变量名。使用任何类型的列表或数组
答案 1 :(得分:0)
只需使用protocols.Model.deserializeBinary(new Uint8Array(read));
运算符即可。
使用break
将所有名称存储在变量中。
Java ArrayList
类使用动态数组来存储元素。
ArrayList
在java中迭代ArrayList<String> userNames=new ArrayList<String>
if (n2 == JOptionPane.YES_OPTION) {
String playerName = JOptionPane.showInputDialog(null,"Enter Player " + i + ":");
userNames.add(playerName);
}else if(n2 == JOptionPane.NO_OPTION){
break;
}
ArrayList
答案 2 :(得分:0)
JOptionPane.showInputDialog
在用户按下ok时返回一个字符串,否则返回null。
&#34;我已经编写了for循环,但无法确定如何将每个输入分配给字符串变量&#34;
String Playerone = JOptionPane.showInputDialog(null,"Enter Player 1:" );
我可以看到你知道如何将每个值分配给字符串变量,不要不确定你的能力,除非你在不理解它的情况下将代码复制到某个地方。由于我们有多个玩家,我使用字符串数组来存储输入。
要回答第二个问题,要打破循环,只需输入break;
总之,我们应该有这样的事情:
String Playerone = JOptionPane.showInputDialog(null,"Enter Player 1:" );
textArea.append("Player 1: " + Playerone);
String[] playernames = new String[5];
for(i=2; i<=6;i++) {
int n2 = JOptionPane.showConfirmDialog(null,"Enter another player?" ,"",JOptionPane.YES_NO_OPTION);
if(n2 == JOptionPane.YES_OPTION) {
playernames[i-2] = JOptionPane.showInputDialog(null, "Enter Player "+ i + "\n");
textArea.append("Player " + i + ":" + "\n" );
}
else if(n2 == JOptionPane.NO_OPTION) {
break;
}
}