黑马程序员技术交流社区

标题: 相关代码的疑问? [打印本页]

作者: 李承伟    时间: 2012-7-31 10:35
标题: 相关代码的疑问?
第21行代码:flag = true; 是否多余,起没起到作用?我也尝试着注释掉与不注释掉它,分别进行了调试,好像没有什么不同,想了半天,还是不解?
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/08/clip_image002.jpg

作者: 李承伟    时间: 2012-7-31 10:37
截图如下:

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

未命名.jpg

作者: 蔡尚猛    时间: 2012-7-31 11:02
嘿嘿,开始声明的时候是true;,当你输入一个非数字的时候程序就会报异常,flag就会变成false,然后就跳出循环了;输入一个正确的数字的时候,flag初始化就是true,也就是flag再次设定为true;,看来确实没什么意思,不过最好还是存在的好,如果flag声明的时候不赋值就不同了,带着这样看着明白,
作者: ARMdong    时间: 2012-7-31 12:14
我觉得在申明flag变量的时候给它赋值true是没有多大意义的,因为do-while在执行第一轮循环的时候是不会判断循环条件的
作者: 肖攀    时间: 2012-7-31 22:21
第21行的把flag赋值为true确实没用:第一种情况,如果你输入了一个数字,try里边的语句要执行完,本来的flag就为true现在又赋值为true了;第二种情况如果输入的不是数字,在执行到第19行时会出错,这样就直接跳出try语句了,flag=true就不会被执行直接跳到catch中执行。所以无论你输入的是不是数字第21行都没用,但只要你输入的不是数字,无论你要不要第21行都会退出while循环。




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