【发布时间】:2019-09-14 03:12:02
【问题描述】:
所以我目前正在尝试完成这个程序,当您输入与星期几相关的数字时,它会反映连接到数字变量的文本。 (即:星期日 - 1、星期一 - 2 等)
我找到了一个使程序运行的有效代码,但它输出的信息不正确。无论我输入什么数字,它总是显示星期天。它并不能阻止我输入错误的变量。我想要它。在这一点上我很沮丧,我对这一切都很陌生。有人可以检查我的代码并告诉我我做错了什么吗?谢谢。
private void OkButton_Click(object sender, EventArgs e)
{
string day ="1";
int number;
if (int.TryParse(day, out number))
{
if (number >= 7 && number <= 1)
{
switch (day)
{
case "1":
dayOutputLabel.Text = "Sunday";
break;
case "2":
dayOutputLabel.Text = "Monday";
break;
case "3":
dayOutputLabel.Text = "Tuesday";
break;
case "4":
dayOutputLabel.Text = "Wednesday";
break;
case "5":
dayOutputLabel.Text = "Thursday";
break;
case "6":
dayOutputLabel.Text = "Friday";
break;
case "7":
dayOutputLabel.Text = "Saturday";
break;
}
}
else
{
MessageBox.Show("Invalid number input. Please use a number between 1 and 7.");
}
}
else
{
MessageBox.Show("Please put in a valid number.");
}
}
private void ExitButton_Click(object sender, EventArgs e)
{
this.Close();
}
【问题讨论】:
-
您如何提供输入?这里
day ="1"硬编码和int.TryParse(day, out number)使number = 1。所以dayOutputLabel.Text永远是星期日,day ="1"。 -
是的,我做到了。就像我说的,我对这一切都非常陌生。你的解决方案很棒。我想知道您是否可以向我解释 .trim();作品?我非常感谢您的帮助。我已经坚持了好几个小时了。
-
Trim() 是一种简单地删除字符串周围空白的方法。因此,例如,它将“5”、“5”、“5”、“5”、“5”等转换为“5”这样您的用户可能会在间距方面有点草率,但仍然可以得到转换去工作。如果您认为这回答了您的问题,请考虑将其标记为已接受的答案。如有任何其他问题,请随时提出,祝您好运!
-
.NET 提供了一个
System.DayOfWeek枚举,在这里可能比 switch 语句方法更有用。请注意,枚举的数值范围从周日的 0 到周六的 6。如果用户正在输入 1-7 的值,那么您需要首先像您已经在做的那样解析为整数,然后递减解析的值,最后转换为 DayOfWeek,当您将字符串值传递给标签时,它将输出字符串值。
标签: c# string int switch-statement tryparse