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