我为我的课程制作了一个小速度引文表格,用于计算预定字段并将其添加到用户速度中。
例如,如果用户选择访问者,如果违规事件发生在夜间,则最低引用数为25美元,则额外罚款25美元。如果学生被选中,那么每英里的引用次数为#35 +额外的2美元,除非选择二年级学生而不是5美元。
不幸的是,IF语句是我的祸根,我的IF语句出错,因为我的数学没有正确出现。如果我选择一个学生+晚上+ 20中20,那总数应该等于70,我得到10。
GUI图片:http://postimg.org/image/doy6n0sp3/
编辑:我最终重新编写代码来解决我遇到的问题
答案 0 :(得分:2)
我觉得你的意思是
sophomoreOver = (double.Parse(SpeedtextBox.Text) - speedLimit) * 5;
freshmenOver = (double.Parse(SpeedtextBox.Text) - speedLimit) * 2;
答案 1 :(得分:1)
为什么要这样:
学生+晚上+ 20 = 20 = 70?
如果学生= 45,夜晚= 25,你还要再加25?
现在,如果你只是说你正在寻找学生+晚上,那么你是对的,但这里有一段代码每次都在运行,可能会导致你的问题:
if (SophCB.Checked)
{
ticketPrice = ticketPrice + sophomoreOver;
}
else
{
ticketPrice = ticketPrice + freshmenOver; // this is running if you don't select SophCB every time.
}
基本上ticketPrice将是:
ticketPrice = ticketPrice + sophomoreOver;
或
ticketPrice = ticketPrice + freshmenOver;
答案 2 :(得分:0)
我在代码中看到的一个错误是缺少大括号。 *
将在-
之前执行。
替换
sophomoreOver = double.Parse(SpeedtextBox.Text) - speedLimit * 5;
freshmenOver = double.Parse(SpeedtextBox.Text) - speedLimit * 2;
通过
sophomoreOver = ( double.Parse(SpeedtextBox.Text) - speedLimit ) * 5;
freshmenOver = ( double.Parse(SpeedtextBox.Text) - speedLimit ) * 2;
答案 3 :(得分:0)
如果您希望仅向学生收取2美元或5美元的费用,我还建议您嵌入您的IF语句。
if (VisitorRB.Checked)
{
ticketPrice = visitorFine ;
}
else if (StudentRB.Checked)
{
ticketPrice = studentFine;
if (SophCB.Checked)
{
ticketPrice = ticketPrice + sophomoreOver;
}
else
{
ticketPrice = ticketPrice + freshmenOver;
}
}