问题描述
boolflag=false;intscore=0;for(inti=0;i<testClass.mun;i++)//类中的mun=10{//问题:表达式产生副作用,将不会对它计算if(testClass.answer[i]==testClass.Stuanswer[i]);{score++;}}label1.Text=string.Format("{0}",score);score=score*100/testClass.mun;score的值始终都是0,测试的时候if里面的两个数组里面都有值,都是string
解决方案
解决方案二:
贴出实际的vs下的截图,不要自己编辑内容。
解决方案三:
有没有副作用取决于answer和Stuanswer的索引器怎么实现的。以及你比较的是引用还是什么。有没有重写equals
解决方案四:
确认两个数组的值都是一一对应的,并且都没有额外的空格这种问题你没不贴数据截图出来你问个啥呢
解决方案五:
观察到if(testClass.answer[i]==testClass.Stuanswer[i]);是以分号结束的所以条件判断并不会影响结果鉴于循环内有score++;,而最终score为0显然是循环体没有被执行可推知testClass.mun小于1,而不是你说的等于10如果testClass.answer[i]或testClass.Stuanswer[i]不存在,将会产生错误。但是你并没有说明如果这是下标不存在而出现异常,按说你也不会不知道如何处理
解决方案六:
多用输出语句去检查值是否和预想一样,循环是否有执行
时间: 2024-10-12 06:40:56