Ios 如何在带有读线的交换机中创建循环
我必须为我的在线课程制作一个游戏,它显示在控制台上。这是一个两名玩家的游戏,每个团队有3个角色。我正在努力,如何在我的开关中循环“强制”玩家选择1、2或3(它象征着他的团队的角色)来攻击敌人团队,我的代码如下:Ios 如何在带有读线的交换机中创建循环,ios,swift,Ios,Swift,我必须为我的在线课程制作一个游戏,它显示在控制台上。这是一个两名玩家的游戏,每个团队有3个角色。我正在努力,如何在我的开关中循环“强制”玩家选择1、2或3(它象征着他的团队的角色)来攻击敌人团队,我的代码如下: func chooseChar(charac: inout[Character]){ let choice = readLine() var attacker: Character switch choice { case
func chooseChar(charac: inout[Character]){
let choice = readLine()
var attacker: Character
switch choice {
case "1":
attacker = self.playerTeam[0]
charac.append(attacker)
case "2":
attacker = self.playerTeam[1]
charac.append(attacker)
case "3":
attacker = self.playerTeam[2]
charac.append(attacker)
default: print("choose between 1 2 3")
}
}
实际上,当玩家选择示例4时,它将进入默认状态,我的代码将停止
有人有主意吗?对不起,我的英语不好
谢谢 根据您的要求,您可以在默认情况下调用相同的函数(使用递归)(这将使您的代码一直运行,直到出现任何case1、case2或case3),或者您可以在默认情况下设置一个参数,并在开关外部进行检查并根据该参数进行操作。根据您的要求,您可以在默认情况下调用相同的函数(使用递归)(这将使您的代码一直运行,直到出现任何case1、case2或case3),或者您可以在默认情况下设置一个参数,并在开关外部进行检查,然后根据该参数进行操作。使用经典的C方式和add while(true)使这样的操作更简单
func chooseChar(charac: inout[Character]){
while (true){
let choice = readLine()
var attacker: Character
switch choice {
case "1":
attacker = self.playerTeam[0]
charac.append(attacker)
return
case "2":
attacker = self.playerTeam[1]
charac.append(attacker)
return
case "3":
attacker = self.playerTeam[2]
charac.append(attacker)
return
default: print("choose between 1 2 3")
}
}
}
使用经典的C方式并添加while(true)使事情变得更简单
func chooseChar(charac: inout[Character]){
while (true){
let choice = readLine()
var attacker: Character
switch choice {
case "1":
attacker = self.playerTeam[0]
charac.append(attacker)
return
case "2":
attacker = self.playerTeam[1]
charac.append(attacker)
return
case "3":
attacker = self.playerTeam[2]
charac.append(attacker)
return
default: print("choose between 1 2 3")
}
}
}
在开关块周围(而不是开关块内部)添加循环。然后仅当选择不是默认情况时才退出循环。尝试将验证(将选择限制为小于或等于3)应用于从用户处获取选择的输入字段。确定,但如何限制读线()的选择?在开关块周围添加循环,而不是在其内部。然后仅当选择不是默认情况时才退出循环。尝试将验证(将选择限制为小于或等于3)应用于从用户处获得选择的输入字段。好的,但如何限制readline()的选择?