2014-10-08 52 views
1

我想在return語句之前訪問「numOne」,並且我似乎無法找到爲什麼它不工作。一切都很好訪問「numTwo」。是因爲「numOne」在一個範圍內的原因嗎?在for循環之外訪問變量Swift

func checknumber() -> String { 
    var numTwo = 0 
    var range = 0...b 
    for numOne in range { 
     numTwo = b-numOne 
     if let result = isCommon(numOne: numOne, numTwo: numTwo) { 
      println("Success - \(numOne) and \(numTwo) Work") 

      break 
     } else { 
      println("Failure - \(numOne) and \(numTwo) Does NOT Work") 
     } 
     var numOneFinal = numOne 
    } 

    var numberTwo = "\(numTwo)" 
    var numberOne = "\(numOneFinal)" 

    return numberTwo 
} 

如果任何人都可以指出我正確的方向,將不勝感激。

回答

2

numOne的作用域是for聲明,它在其中被定義。

爲了獲得在循環後獲得的numOne最後一個值,添加一個新的變量,說numOneFinal,在同級別numTwo,然後numOne的價值for循環內分配給它。

+0

感謝您的回覆。我做了你所說的,但我得到了「使用未解決的標識符'numOneFinal'錯誤。我在做什麼錯了?我已經更新我的代碼在問題中顯示我在做什麼 – thedude 2014-10-08 00:56:56

+0

您需要聲明新變量,與上面的'numTwo'相同。 – 2014-10-08 00:57:48

+0

明白了!謝謝 – thedude 2014-10-08 00:59:57

1

您不能在for循環之外訪問numOne,因爲它超出了範圍。您只能在循環中訪問numOne