新手求救,程序逻辑错误....

edisonlzk 2007-10-31 04:07:11
private void timer2_Tick(object sender, EventArgs e)
{
Countday();
timer2.Interval = 5000;
beginkm++;
this.textBox6.Text = beginkm.ToString();
}
public void Countday()
{
//int j = Convert.ToInt32(this.textBox6.Text);
int j = beginkm;
if (j == 1)
{
sum = 5;
}
if (j > 1 &&j <= 7)
{
double step1 = 1;
step1 = step1 * 1.4;
sum += step1;
}
else if (j > 7 && j <= 60)
{
double step2 = 1;
step2 *= 2.1;
sum += step2;
}
else
{
double step3 = 1;
step3 *= 1.4;
sum += step3;
}
this.textBox7.Text = sum.ToString() ;
}


当我执行结果
公里数 价格
1 5
2 5
3 6.4
4 7.8

为什么第二次没有的值没有加呢,不知道为什么,请高手帮我看看啊...
...全文
91 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Karual 2007-11-01
  • 打赏
  • 举报
回复

顺便JF
Whislly 2007-10-31
  • 打赏
  • 举报
回复
因该是beginkm没初始化或初始化为0:
公里数 价格
1 5
第一次显示为公里数1,而代码是在加了beginkm后再显示beginkm的值的:
beginkm++;
this.textBox6.Text = beginkm.ToString();
也就是说第一次低调用Countday时beginkm为0,当然不对了。
niuniuhuang 2007-10-31
  • 打赏
  • 举报
回复
不知道你要干什么
但有个地方有问题
if (j == 1)
{
sum = 5;
}
后面要接else if 而不是if
leaohong 2007-10-31
  • 打赏
  • 举报
回复
你先Countday(); 再beginkm++;第一次调用应该不是timer2_Tick调用的吧
wfyloo1234 2007-10-31
  • 打赏
  • 举报
回复
你给的程序是不是有问题啊...全是IF..你累加的结果怎么得的啊

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧