Java编程问题,boolean语句"boolean flag = true"的位置不同导致的程序结果不同,请高手指导说明!

2025-05-12 13:44:36
推荐回答(1个)
回答(1):

单就作用域而言:
上面的代码和下面的代码是不一样的。
上面的代码:flag写在外面,所有的数字都是用这一个flag。当i=4的时候,因为你是先做的输出,所以4是true,然后紧接着后面的判断,因为此时i和j都是2,满足条件,flag就变成false。而你的代码里又没有将flag改回true的地方,所以后面不管i是几都会输出false。
下面的代码,因为你的flag是写在for里面,所以每次的flag其实都是一个新的变量。同样,因为你先做的输出,所以不管数字是几,都会输出true,就算后面改了,因为作用域的问题,这个被修改过的flag还没被使用就被遗弃了,所以你下面这段代码的if语句其实是废的。