如何使用readline在开关中进行循环

时间:2018-11-22 13:09:40

标签: ios swift

我必须为我的在线课程制作一个游戏,它在控制台上显示这是一个供2个玩家使用的游戏,每个团队3个角色,而我正在努力如何循环切换以“强制”使用玩家可以选择1、2或3(代表其团队角色)来攻击敌方团队,这是我的代码:

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时,它将继续使用默认值,而我的代码会停止...

有人有想法吗?对不起,我的英语不好!

谢谢!

2 个答案:

答案 0 :(得分:1)

根据您的要求,您可以在默认情况下调用相同的函数(使用递归)(这将使您的代码一直运行到出现case1,case2或case3为止),也可以在默认情况下设置参数并在外部检查开关并据此采取行动。

答案 1 :(得分:1)

使用经典的C方式并添加while(true)使事情变得更容易。

import fetch from 'isomorphic-fetch';
import * as autofillData from 'autofill.json'; //test data

const FetchResults = event => {
  return fetch('/https://jsonplaceholder.typicode.com/todos/1'') //mockURL, to be replaced with real API
    .then(response => {
      // const parsedJson = response.json(); // TODO: un-comment this line when the real API url is usable
      const parsedJson = autofillData; // TODO: remove this line when mocking is done and the real API URL is ready
      return parsedJson;
    })
}

export default FetchResults;