【问题标题】:How to change values inside if statements, determined by user input如何更改 if 语句中的值,由用户输入确定
【发布时间】:2014-08-14 11:54:13
【问题描述】:

我正在尝试制作一个程序,其中一个人输入他们的工资和工作小时数,输出将是他们的净工资、扣除的税款和总工资。 个人的税率和工资率(每小时)将取决于他们的年薪。
示例:

年薪 $0 - $16,500:税率为 11.32%,工资率为每小时 $8.68
年薪 $16,501 - $19,500 : 税率为 15.14%,工资率为每小时 $10.26

大约有 8 个不同的选项,类似于上面显示的选项。我的第一个问题是如何声明 TAX_RATE 和 PAY_RATE 的变量,然后再开始确定它们中的每一个将相等。我不确定在声明它们之后我会添加什么作为值。

float TAX_RATE = 
float PAY_RATE = 

下面显示了我尝试使用 if 语句的示例,但我收到一条错误消息,指出它会给 TAX_RATE 和 PAY_RATE 赋予不同的含义

if (annual_salary >= 00 && annual_salary <= 16500)
        {
            float TAX_RATE = 11.32F;
            float PAY_RATE = 8.68F;
        }

因此,例如,如果此人的年薪为 15000 美元,那么他们的工资率和税金将分别为每小时 11.32% 和 8.68 美元。

我将如何声明变量,然后根据用户的输入来操作它们?

ADDON:当我做方程式来计算总工资和税款时,它给了我消息“使用未分配的本地变量(TAX_RATE,PAY_RATE)”

 gross_pay = hours_worked * PAY_RATE;
 tax = gross_pay * (TAX_RATE / 100);

【问题讨论】:

  • 简单地做float taxRate;和 taxRate = 11.32;
  • 好吧,这比我简单多了,谢谢!

标签: c# if-statement


【解决方案1】:

您可以像这样在if 语句之外声明它们,并在内部分配它们:

float TAX_RATE;
float PAY_RATE;

if (annual_salary >= 00 && annual_salary <= 16500)
{
    TAX_RATE = 11.32F;
    PAY_RATE = 8.68F;
}
else
{
   ...
}

【讨论】:

  • 嘿,谢谢,我有一个插件问题,如果你们可以看看。
  • @user3687717:我认为您没有else 分支,因此变量TAX_RATE 没有设置值。创建一个else 分支或确保其他if 语句始终导致分配变量。
【解决方案2】:

不要在 if 语句内部使用float。在那之前做if

【讨论】:

    【解决方案3】:

    根据我对您问题的理解,您需要默认声明的变量,然后您想更改其值,因此请执行以下过程:

    float TAX_RATE = 0;
    float PAY_RATE = 0;
    
    if (annual_salary >= 00 && annual_salary <= 16500)
    {
        TAX_RATE = 11.32F;
        PAY_RATE = 8.68F;
    }
    else
    {
       ...
    }
    

    【讨论】:

    • 我认为用 = 0 声明浮点数已经解决了我的插件问题。
    • @user3687717:可能,但请注意,如果没有分配,您的逻辑可能会出现漏洞。
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2020-11-28
    相关资源
    最近更新 更多