A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李志祥 中级黑马   /  2012-4-6 04:39  /  2404 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李志祥 于 2012-4-18 15:10 编辑

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


评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

6 个回复

倒序浏览
本帖最后由 张世豪 于 2012-4-6 05:08 编辑

错了一点,就是把MessageBox.Show(string.Format("{0}是第一名,成绩是{1}",maxName,maxScore));写在foreach循环里了,程序共比较了三次,所以输出三次,改一下就行了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
呵呵……  楼上说的对,你的MessageBox.Show()方法不应该在循环里面,那样的话,当你MessageBox.Show()的时候你的每个人都是最高分…  有多少人就会输出多少次!
回复 使用道具 举报
foreach循环中,第一次传入的参数是:张三:200;因为张三的成

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

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

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

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

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

三次输出的还是"李四是第一名,成绩是420"!

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
宋天琪 + 1
李志祥 + 3

查看全部评分

回复 使用道具 举报
张世豪 发表于 2012-4-6 05:04
错了一点,就是把MessageBox.Show(string.Format("{0}是第一名,成绩是{1}",maxName,maxScore));写在foreac ...

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

恩,是的,明白了
回复 使用道具 举报
MessageBox.Show()方法应该放到foreach外。
当foreach执行结束后string maxName和int maxScore就获得了string[] lines中的maxScore和对应的maxName,
只要在foreach 后MessageBox.Show()即可。
如何放在foreach内,表示每判断一个Score,如果条件成立,就输出一次,这样就不合理了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马