1.在嵌套语句实现输出打印来判别语句执行情况时,要在在对应目标功能实现后的外层输出而不是内存否则会出现,输出过度io过度导致卡顿问题,此处flag不在外层输出则不是以目标函数的执行次数为计数而是以赋值次数为计数。
2.当在循环体外面计数时flag++的含义执行循环体的完成后加一
3.此处输出flag只是为了判别这是第几次点击触发了函数的执行,并不是获取该函数按钮被点击的次数,这里是从点击触发时候开始调用函数 的,即点击一次从public处执行一次
4.将flag值加一操作放在数组复制动作外就实现了对数组旋转操作次数的计数,同时保证了flag的连贯性1,2,3,4,。。。因为动作不是一气呵成的。同时flag++是在从下下次调用,或者函数完成后实现的flag+1 的操作,所以不会出现flag==1执行完直接执行flag==2的情况,因为flag执行完flag++时还是,flag==1,此时执行flag==1;已执行而flag==2;无法执行,只有函数结束是flag++才会使flag==2;当再次点击旋转按钮时触发旋转函数此时flag==2,执行第二种旋转操作。
5.从flag的计数和,其旋转效果看可以看出是哪个旋转操作出了问题,明显是点三个,因为他没有正确的图像输出,此时检查存储数组长宽是否合适,以及下标对应是否正确
6.一定要即使更新,数组行列信息个含义分清楚
7.写成转90度再转90 度在转90 度的接力,和转90度,180,270 的组合有区别,前者要更新基础的数组piexlArr而后者不用,在时间和空间复杂度上都会有优势 。还有就是坐标编号逻辑上去推很难的时候咱们就直接采用测试的方式变更,ij顺序这样能有效缩短做题时间