2016-02-26 17 views
0

我試圖找出如何從根本上建立一個if語句即能找出多少進球的足球比賽,巴薩在出場的上半場被砍下。統計資料都在那裏與當時代表的目標是在打進分鐘旁的數字。我那麼怎麼會寫我的if聲明這樣。我知道如何用一個簡單的變量,就像是一個字符串或一個數字,但我怎麼會找到一個字典,具體數值和具體數值我想要的值只是一個單一的價值做呢?如何拉出來的數據字典

var barcelonavsRealMadrid1 = [[String : Int]]() // if you want this globally 
var barcelonavsRealMadrid1goals : [String : Int] = ["barcelonaGoal":21,"RealMadridGoal":23] 
var barcelonavsRealMadrid1penaltys : [String : Int] = ["RealMadridPenalty":21,"barcelonaPenalty":23] 


if barcelonavsRealMadrid1goals == ["barcelonaGoal":21] { 
     print("Fond it") 
    } 
+0

例如像。打印來自巴塞羅那的比賽,並且所有目標越大的1000 – Hunter

+0

初始值,我不能在所有讓你的「數據結構」的任何意義。而「IF」是一個分支控制結構,而不是從字典中提取數據的東西。 – Eiko

回答

3

您可以在詞典中檢索數據很容易:

barcelonavsRealMadrid1goals["barcelonaGoal"] 

但我要告訴你,我覺得你的數據結構將無法正常工作,你希望它的方式。例如,你不能將一個團隊的幾個目標放到字典中。

構建類爲您的數據和正確封裝。不要把「一切都放在一些東西上」,並建立在一些神奇的元素名稱上。瞭解你正在使用的概念。

我想讀一個良好的編程介紹可能被調用,然後雨燕編程指南進入腦海。

編輯

這裏是一個什麼樣的遊戲數據結構可能看起來像一個非常簡化例如:

class Game { 
    var team1 : String 
    var team2 : String 

    var minutesOfGoalsTeam1: [Int] 
    var minutesOfGoalsTeam2: [Int] 

    init(team1 t1 : String, team2 t2: String) { 
     team1 = t1 
     team2 = t2 
     minutesOfGoalsTeam1 = [] 
     minutesOfGoalsTeam2 = [] 
    } 

    func goalsTeam1() -> Int { 
     return minutesOfGoalsTeam1.count 
    } 

    func goalsTeam2() -> Int { 
     return minutesOfGoalsTeam2.count 
    } 

    func addGoal(team : String, minute : Int) { 
     if team == team1 { 
      minutesOfGoalsTeam1.append(minute) 
     } 
     if team == team2 { 
      minutesOfGoalsTeam2.append(minute) 
     } 
    } 

    func winner() -> String { 
     if goalsTeam1() > goalsTeam2() { 
      return team1 
     } 
     if goalsTeam2() > goalsTeam1() { 
      return team2 
     } 
     return "DRAW" 
    } 
} 

let game = Game(team1: "Barcelona", team2: "Madrid") 
game.addGoal("Barcelona", minute: 5) 
game.winner() 

添加處罰被留作練習。這真的只是冰山的一角。有數百種方法可以做到這一點,我不認爲這是最好的方法。例如,可以考慮一個專門的團隊課程。或者使用一些帶有子類的遊戲事件類來實現目標和處罰,然後將這些事件添加到數組中並循環以獲取具體數據。

1
var goalCount=0 
for (goal,numbers) in barcelonavsRealMadrid1{ 
for(var number in numbers){ 
if(number < 45) 
    goalCount++ 

    } 
} 

我認爲它會工作

+0

斯威夫特2不太好看,但它看起來只需要稍作調整 – Hunter