2017-02-15 20 views
0
let randsign = Int(arc4random_uniform(2) + 1) 

//This function returns a random operator 
func whatSign(par1:Int)-> String { 

    if (par1 == 1){ 
     return "+" 

    } 
    else { 
     return "-" 
    } 

} 

var sigh = whatSign(par1: randsign) 

let randnum1:Any = Int (arc4random_uniform(10) + 1) 
let randnum2:Int = Int (arc4random_uniform(10) + 1) 

//我希望變量「finVal」進行數學運算,但它不確實,因爲變量「符號」是字符串我不知道如何讓它們增加或減少,它有一種方法來做到這一點。基本上,我想1「+」 3 = 4,但我得到1 + 3

let finVal = "\(randnum1)\(sigh)\(randnum2)" 
print(finVal) 

//When I print I get for example 1-3, 9-4, 8+2 .But I wanted them to do arithmetic 
+0

我什至不明白問題是什麼...請給予更多細節預期的輸入和輸出... – Rudy

+0

當你寫入任何「」引號,然後它被視爲字符串。它不被視爲算術符號 –

+0

@JeckyModi有沒有辦法讓我可以變成算術符號? – Jenny

回答

3

NSExpression是一個評估數學的好方法

let finVal = "(randnum1)(sigh)(randnum2)" 
let result = NSExpression(format: finVal).expressionValue(with: nil, context: nil) as! Int 
+1

非常感謝它的魅力。非常喜歡 – Jenny

0
let randsign = Int(arc4random_uniform(2) + 1) 
let randnum1:Any = Int (arc4random_uniform(10) + 1) 
let randnum2:Int = Int (arc4random_uniform(10) + 1) 
var finVal:Int 
//This function returns a random operator 
func whatSign(par1:Int)-> String { 
//I want to compute the variables and get final result from adding or subtracting them 
if (par1 == 1){ 
finVal = randnum1 + randnum2 
    return "+" 

} 
else { 
finVal = randnum1 - randnum2 
    return "-" 
} 

} 

whatSign(par1: randsign) 


print(finVal) 
//When I print I get for example 1-3, 9-4, 8+2 .But I wanted them to do arithmetic 

或許它會幫助你

相關問題