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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李承伟 初级黑马   /  2012-7-31 10:35  /  1752 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

第21行代码:flag = true; 是否多余,起没起到作用?我也尝试着注释掉与不注释掉它,分别进行了调试,好像没有什么不同,想了半天,还是不解?
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/08/clip_image002.jpg

4 个回复

倒序浏览
截图如下:

未命名.jpg (45.77 KB, 下载次数: 26)

未命名.jpg

评分

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

查看全部评分

回复 使用道具 举报
嘿嘿,开始声明的时候是true;,当你输入一个非数字的时候程序就会报异常,flag就会变成false,然后就跳出循环了;输入一个正确的数字的时候,flag初始化就是true,也就是flag再次设定为true;,看来确实没什么意思,不过最好还是存在的好,如果flag声明的时候不赋值就不同了,带着这样看着明白,

评分

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

查看全部评分

回复 使用道具 举报
我觉得在申明flag变量的时候给它赋值true是没有多大意义的,因为do-while在执行第一轮循环的时候是不会判断循环条件的

评分

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

查看全部评分

回复 使用道具 举报
第21行的把flag赋值为true确实没用:第一种情况,如果你输入了一个数字,try里边的语句要执行完,本来的flag就为true现在又赋值为true了;第二种情况如果输入的不是数字,在执行到第19行时会出错,这样就直接跳出try语句了,flag=true就不会被执行直接跳到catch中执行。所以无论你输入的是不是数字第21行都没用,但只要你输入的不是数字,无论你要不要第21行都会退出while循环。

评分

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

查看全部评分

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