如果声明斯威夫特

时间:2017-08-23 01:24:55

标签: ios swift variables if-statement

我正在尝试构建一个if / then基本应用程序,一旦按下按钮,它将显示标签中.swift文件中输入值的联邦所得税。我打算稍后让代码更具功能,但是想测试一下我的代码。唯一的问题是,当我按下按钮时,它显示0.0,当它应该是40左右时......有谁知道我做错了什么?

teams = tree.xpath('//td[@class="nw"]/text()')

4 个答案:

答案 0 :(得分:1)

您不应在if else块内创建变量。

尝试在if else之外移动声明并更改if else块内的值。

答案 1 :(得分:1)

分配给var的所有行都分配给您在if块范围内定义的本地fedIncome。该块结束后,fedIncome变量将被删除,因此不会打印。

如上所示,您的示例似乎根本不应该编译。如果它正在编译,我的假设是你的类在其他地方定义了print属性,并且你的fedIncome语句正在打印而不是你刚刚计算的值。

无论如何,在if语句之外声明var,并删除if语句中的var语句,您应该解决您的问题。您也可以考虑将let转换为from pyspark.sql import Window windowSpec = Window.orderBy("col1").rowsBetween(Window.unboundedPreceding, Window.unboundedFollowing) from pyspark.sql import functions as F df.withColumn("col2", F.collect_list("col2").over(windowSpec)).show(false) ,因为您在设置它们之后不会改变它们。

答案 2 :(得分:0)

雅是因为你在每个if / else语句中声明联邦收入是一个局部变量。尝试这样的事情:

@IBAction func ButtonClicked(_ sender: Any) {
    let hourly = 9.00
    let hours = 61.75
    let exemptions = 1.00
    let deductions = 95.80
    let allowances = (exemptions * deductions)
    let gross = (hourly * hours)
    let taxable = (gross - allowances)
    var fedIncome:Float = 0.0 // default value
    if taxable >= 17529 {
        fedIncome = ((taxable * 0.396) + 5062.69)}
    else if taxable < 17529 && taxable >= 17458  {
        fedIncome = ((taxable * 0.35) + 5037.84)}
    else if taxable < 17458 && taxable >= 8081  {
        fedIncome = ((taxable * 0.33) + 1943.43)}
    else if taxable < 8081 && taxable >= 3925  {
        fedIncome = ((taxable * 0.28) + 779.75)}
    else if taxable < 3925 && taxable >= 1677  {
        fedIncome = ((taxable * 0.25) + 217.75)}
    else if taxable < 1677 && taxable >= 484  {
        fedIncome = ((taxable * 0.15) + 38.80)}
    else if taxable < 484 && taxable >= 96 {
        fedIncome = (taxable * 0.1)}
    }

    Label.text = ("\(fedIncome)")
}

请注意,fedIncome在顶部声明了函数的本地其他变量,然后每个if / else只是相应地更新它...

答案 3 :(得分:0)

在输入 if 语句之前,将var fedIncome与其余变量一起放置..所以当任一if语句中的条件为真时,更改应用于退出 if

后,fedIncome不会重置