大于10的点击计数器返回1

问题描述 投票:0回答:3

我试图让您轻按一个按钮,然后在标签上加1。如果该标签低于3,则打印低于3的标签。如果高于3,则表示高于。直到10为止,即使标签仍显示10或更高,它仍会打印出低于三的数字。

var counter = 0
@IBOutlet weak var count: UILabel!

  @IBAction func testigbutton(_ sender: UIButton) {

       counter = counter + 1
       count.text = String(format: "%i", counter)

    if count.text! < "3" {

        print("Less than 3")
    } else if count.text! > "10" {

        print("More than 3")
    }
  }
swift if-statement counter tap
3个回答
2
投票

String的比较是逐字符进行的。

["9"大于"3",因为如果排序,字符9在字符3之上。

["10"小于"3",因为按字符进行比较时,"1"小于"3"并在此结束。

如果需要进行数值比较(使用实际的[[number而不是字符串),请使用:

if Int(count.text!) < 3 { ... } else { ... }

请注意,我是在比较实际的Int,而不是String


0
投票
更改行

if count.text! < "3" {

至:

if counter < 3 {

这样,您将按数字顺序比较数字,而不是按字典顺序比较字符串。

0
投票
由于您正在比较字符串,因此会检查每个字符。换句话说,不是将其与10进行比较,而是将其与1进行比较,然后再与0进行比较。由于1 <3,因此将其输出。您只需要与计数器变量进行比较,或者将其强制转换为Int或Double类型,就可以解决此问题Int(count.text!)
© www.soinside.com 2019 - 2024. All rights reserved.