C# 为什么赢了';我对这个代码的计算不起作用吗? private void btnCalculate\u单击(对象发送方,路由目标) { 双薪; 工资=0.00; 双加; 加法=0.00; 智力年龄; age=int.Parse(txtAge.Text); 弦月; month=txtmount.Text; 如果(年龄>=18岁和年龄(&A) 您可以直接分配变量。声明和分配不需要是不同的语句 18有两种不同的检查:>=18在if中,标签分配在switch语句中。您还可以对代码进行许多其他改进

C# 为什么赢了';我对这个代码的计算不起作用吗? private void btnCalculate\u单击(对象发送方,路由目标) { 双薪; 工资=0.00; 双加; 加法=0.00; 智力年龄; age=int.Parse(txtAge.Text); 弦月; month=txtmount.Text; 如果(年龄>=18岁和年龄(&A) 您可以直接分配变量。声明和分配不需要是不同的语句 18有两种不同的检查:>=18在if中,标签分配在switch语句中。您还可以对代码进行许多其他改进,c#,wpf,C#,Wpf,对于初学者,您还可以加入变量的赋值和声明,并在switch中使用.ToLower()来保存额外的情况: private void btnCalculate_Click(object sender, RoutedEventArgs e) { double pay; pay = 0.00; double add; add = 0.00; int age; age = int.Pars

对于初学者,您还可以加入变量的赋值和声明,并在switch中使用.ToLower()来保存额外的情况:

    private void btnCalculate_Click(object sender, RoutedEventArgs e)
    {
        double pay;
        pay = 0.00;

        double add;
        add = 0.00;


        int age;
        age = int.Parse(txtAge.Text);

        string month;
        month = txtMonth.Text;


           if (age >= 18 && age <= 55)
           {
               pay = 350;
           }

           else if (age <= 18)
           {
               pay = 150;                   //if-else-if statements depending on age
           }

           else if (age > 55)
           {
               pay = 35;
           }

        switch (month)
        {
            case "January":
            case "january":
            case "July":
            case "july":          //switch statement, how much you pay depending on month
                add = 100;
                break;


            case "February":
            case "february":
            case "August":
            case "august":
                add = 120;
                break;

            case "March":
            case "march":
            case "September":
            case "september":
                add = 140;
                break;

            case "April":
            case "april":
            case "October":
            case "october":
                add = 160;
                break;

            case "May":
            case "may":
            case "November":
            case "november":
                add = 180;
                break;

            case "June":
            case "june":
            case "December":
            case "december":
                add = 120;
                break;
        }

           lblTotal.Content = (pay + add) * 1.13; //calculation that prints to the label

    }
private void btnCalculate\u单击(对象发送方,路由目标)
{
var pay=0.00;
var add=0.00;
var age=int.Parse(txtAge.Text);
var month=txtmount.Text;

如果建议的(年龄>=18&&age,则标签分配在
开关
语句中,导致除非月份是6月或12月,否则不会执行

无论如何,我建议你简化一下

试试这个:

    private void btnCalculate_Click(object sender, RoutedEventArgs e)
    {
        var pay = 0.00;
        var add = 0.00;
        var age = int.Parse(txtAge.Text);
        var month = txtMonth.Text;

        if (age >= 18 && age <= 55)
        {
            pay = 350;
        }
        else if (age <= 18)
        {
            pay = 150;
        }
        else if (age > 55)
        {
            pay = 35;
        }

        switch (month.ToLower())
        {
            case "january":
            case "july":
                add = 100;
                break;

            case "february":
            case "august":
            case "june":
            case "december":
                add = 120;
                break;

            case "march":
            case "september":
                add = 140;
                break;

            case "april":
            case "october":
                add = 160;
                break;

            case "may":
            case "november":
                add = 180;
                break;
        }

        lblTotal.Text = Convert.ToString((pay + add) * 1.13); //calculation that prints to the label
    }
private void btnCalculate\u单击(对象发送方,路由目标)
{
int age=int.Parse(txtAge.Text);
双薪=年龄55-35.0:350.0);
int index=(DateTime.Parse(“1”+txtmount.Text).Month-1)%6;
双[]选择=新[]{100.0,120.0,140.0,160.0,180.0,120.0};
双加=选择[索引];
lblTotal.Content=(支付+添加)*1.13;
}

您必须将
lblTotal.Content=(支付+添加)*1.13;
在switch语句之外。还有一个错误:第一个和第二个if语句将在if age=18时执行。非常感谢您的帮助。不是真的,Joel。只有第一个。因为第二个是else if语句,它将被第一个语句丢弃。@vicmota,这是正确的。忽略我之前的评论。谢谢
private void btnCalculate_Click(object sender, RoutedEventArgs e)
{
    int age = int.Parse(txtAge.Text);
    double pay = age <= 18 ? 150.0 : (age > 55 ? 35.0 : 350.0);

    int index = (DateTime.Parse("1 " + txtMonth.Text).Month - 1) % 6;
    double[] choices = new [] { 100.0, 120.0, 140.0, 160.0, 180.0, 120.0 };
    double add = choices[index];

    lblTotal.Content = (pay + add) * 1.13;
}