黑马程序员技术交流社区

标题: winform统计数 [打印本页]

作者: 李志祥    时间: 2012-4-6 04:39
标题: winform统计数
本帖最后由 李志祥 于 2012-4-18 15:10 编辑

怎么我的出现会出现下图中的情况啊
求解



作者: 张世豪    时间: 2012-4-6 05:04
本帖最后由 张世豪 于 2012-4-6 05:08 编辑

错了一点,就是把MessageBox.Show(string.Format("{0}是第一名,成绩是{1}",maxName,maxScore));写在foreach循环里了,程序共比较了三次,所以输出三次,改一下就行了。
作者: ★心秒★    时间: 2012-4-6 11:10
呵呵……  楼上说的对,你的MessageBox.Show()方法不应该在循环里面,那样的话,当你MessageBox.Show()的时候你的每个人都是最高分…  有多少人就会输出多少次!
作者: 刘冬晓    时间: 2012-4-6 11:55
foreach循环中,第一次传入的参数是:张三:200;因为张三的成

绩200大于maxScore初始值-1,所以输出"张三是第一名,成绩是

200",且给maxScore赋值200;第二次传入的参数是:李四:420

;因为李四的成绩420大于maxScore的值200,所以输出"李四是第

一名,成绩是420",且给maxScore赋值420;第三次传入的参数是

:王五:100,因为王五的成绩100小于maxScore的值420,所以第

三次输出的还是"李四是第一名,成绩是420"!
作者: 李志祥    时间: 2012-4-6 12:16
张世豪 发表于 2012-4-6 05:04
错了一点,就是把MessageBox.Show(string.Format("{0}是第一名,成绩是{1}",maxName,maxScore));写在foreac ...

恩,多谢,后来发现错误了,大爷的
夜猫子,伤不起啊
看晕乎了
O(∩_∩)O~
作者: 李志祥    时间: 2012-4-6 12:17
★心秒★ 发表于 2012-4-6 11:10
呵呵……  楼上说的对,你的MessageBox.Show()方法不应该在循环里面,那样的话,当你MessageBox.Show()的时 ...

恩,是的,明白了
作者: 黄国钢    时间: 2012-4-6 12:21
MessageBox.Show()方法应该放到foreach外。
当foreach执行结束后string maxName和int maxScore就获得了string[] lines中的maxScore和对应的maxName,
只要在foreach 后MessageBox.Show()即可。
如何放在foreach内,表示每判断一个Score,如果条件成立,就输出一次,这样就不合理了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2