在If / Else中捕获Nil错误

时间:2016-07-21 23:55:39

标签: swift try-catch

虽然这对我来说似乎不太简单,但我似乎无法弄清楚如何对此进行编码。我正在尝试编写if / else if / else语句,但它不起作用。这就是我所拥有的:

for value in values {
  if Float(value) > 0 {
    print("positive")
  } else if value == "N/A" {
    print("not available")
  } else {
    print("negative")
  }
}

值是一个字符串数组,其值为“1.0”,“N / A”或“-1.0”。通过数组迭代,如果它命中“N / A”,则会抛出错误。我觉得我需要将它嵌入try / catch块中。这是一个零错误。谢谢!

3 个答案:

答案 0 :(得分:1)

试试这个

for value in values {
    if let val = Float(value) {
        if val > 0 {
            print("positive")
        } else {
            print("negative")
        }
    } else {
        print("not available")
    }
}

答案 1 :(得分:1)

给定这个数组

let values = ["1", "-2", "N/A"]

你可以写

for value in values {
    guard let number = Float(value) else {
        print("N/A")
        continue
    }
    switch number {
    case 0: print("zero")
    case _ where number < 0: print("negative")
    case _ where number > 0: print("postive")
    default: fatalError()
    }
}

这是输出

postive
negative
N/A

答案 2 :(得分:0)

这个怎么样:

 let values = ["1", "-2", "N/A"]
 for value in values 
 {
     print( 
            Float(value) == nil ? "not available" :
            Float(value)! > 0   ? "positive"      
                                : "negative" 
          )
 }