我前后把isprime的赋值放在for循环内和开头,发现输出结果不同。尤其是在开头赋值,输出结果仅有2和3。请问这是什么原因?
(顺变问下vs有没有好的排版插件,我有强迫症每次自己调就很浪费时间)
我前后把isprime的赋值放在for循环内和开头,发现输出结果不同。尤其是在开头赋值,输出结果仅有2和3。请问这是什么原因?
(顺变问下vs有没有好的排版插件,我有强迫症每次自己调就很浪费时间)
这两个的不同之处在于
当isprime的初始化放在开头时,isprime为全局变量,那么只有到程序结束isprime才会被释放,也就是说在整个程序运行时,isprime的变化是”累加“的,比如isprime先是为1,后改变为0,如果不在改变isprime的值那么isprime在整个程序运行时都不会改变。所以只能输出2和3
=====
当isprime放在for循环中时,每一次的循环都会将isprime初始化为1,那么即使后续没有改变isprime的语句,在下一次循环进行时isprime的值都会被重置为1,那么就可以输出其他不同结果