【问题标题】:making switch "if" statements制作 switch "if" 语句
【发布时间】:2014-06-28 09:45:32
【问题描述】:

我正在为我的公司员工制作薪酬计算器。它考虑了联邦税、社会保障税和医疗保险税。但是,有些员工是独立承包商,不缴纳某些税款。因此,所有这些税都在它们单独的开关按钮上。我在为这些开关制作“if”语句时遇到了麻烦,因为我以前从未做过开关。我希望有人能引导我朝着正确的方向前进!

代码:

- (IBAction)calculateButtonPressed:(UIButton *)sender
{
    float dailyRate = [self.dailyRateTextField.text floatValue];
    float daysWorked = [self.daysWorkedTextField.text floatValue];
    float grossPay = dailyRate * daysWorked;
    float taxRate = .72;
    float ssRate = .938;
    float medRate = .9855;
    float netPay = grossPay * taxRate * medRate * ssRate;
    self.dailyRateTextField.text = [NSString stringWithFormat:@"$%.2f", dailyRate];
    self.netIncomeTextField.text = [NSString stringWithFormat:@"$%.2f", netPay];
    self.grossIncomeTextField.text = [NSString stringWithFormat:@"$%.2f", grossPay];

    if (fedTaxSwitchOutlet.on) {}

    if (!fedTaxSwitchOutlet.on) {}

    if (ssTaxSwitchOutlet.on){}

    if (!ssTaxSwitchOutlet.on) {}

    if (medTaxSwitchOutlet.on) {}

    if (!medTaxSwitchOutlet.on) {}

    }    

}

有谁知道我将如何在“if”语句中做一个方程式?就像关闭了医疗保险税开关一样,我仍然希望应用程序计算社会保障税和联邦税。

【问题讨论】:

  • 对于您的场景,请使用if()....else...
  • 方程式呢?我将如何在“if”语句中使用浮点数做一个方程?
  • 您熟悉 C 或 Objective-C 语言的基础知识吗? UISwitch 控件的使用与如何编写计算代码没有实际关系。 UISwitchon 属性是您在 if 语句中检查的布尔值。将相关的“方程式”放在与该条件相对应的{} 中。不要将 C switch 语句与 UISwitch 控件混淆。
  • @anna OP 要求 switch...case... 控制结构不是 uiswitch。 :)
  • 已修复。约格什是对的。我关掉了!语句并用下面的 else 语句替换,然后使用我的浮点标识符来做等式。现在一切就绪。感谢您的帮助!

标签: ios xcode if-statement switch-statement


【解决方案1】:

在 if 语句上方声明变量。这允许您在 if 语句中读取它们,这称为scope。如果您要继续从事此项目,请阅读有关变量范围的基础知识。

此外,如果您在UISwitch 关闭的情况下不需要做任何事情,那么不要寻找它 - 您需要做的就是查看开关是否打开。如果是,则计算。

float federal = 0.0;
float socialSecurity = 0.0;
float medicare = 0.0;

if (fedTaxSwitchOutlet.on) {
  federal = [self calculateFederal]
}

if (ssTaxSwitchOutlet.on){
  socialSecurity = [self calculateSocialSecurity]
}

if (medTaxSwitchOutlet.on) {
  medicare = [self calculateMedicare];
}

float total = federal + socialSecurity + medicare;

【讨论】:

  • 谢谢!我现在正在学习 Objective C 的课程,但有些东西我还不太明白。我在阿富汗服役,我正试图在业余时间做这件事,以便在我离开这里时给我一些期待。谢谢你的帮助,我真的很感激! :)
【解决方案2】:

@Yogesh Suthar 是对的,这就是我所做的:

if (medTaxSwitchOutlet.on) netPay = netPay;
else netPay = netPay + medgrossrate;
if (ssTaxSwitchOutlet.on) netPay = netPay;
else netPay = netPay + ssgrossrate;
if (fedTaxSwitchOutlet.on) netPay = netPay;
else netPay = netPay + minusTaxes;

【讨论】:

    猜你喜欢
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    相关资源
    最近更新 更多