Java控制语句练习中的一点疑问,请高手帮忙解答,谢。

来源:百度知道 编辑:UC知道 时间:2024/06/04 02:34:17
问题是:现实前50个素数,每行显示10个数。
我的代码是(核心):

1 while (count<Number_Prime) {
2 isPrime=true;
3
4 for(int divisor=2;divisor<=number/2;divisor++) {
5 if(number%divisor==0) {
6 isPrime=false;
7 break;
8 }
9 }
10
11 if(isPrime) {
12 count++;
13 if(count%Number_Prime_Per_Line==0) {
14 System.out.println(number);
15 }
16
17 else
18 System.out.print(number+" ");
19 }
20
21 number++;
22 }

我想问的是,在第4到第9行中定义了divisor以及isPrime何时为“false”,但是这个for循环在9行时已经结束。那为什么在第11行里又能用“isPrime”呢(isPrime的判定是依托divisor,但divisor在第9行已经结束它的生命周期了啊)?
不知道我这么说清不清楚,麻烦下高手指教,谢谢。

divisor
这个是判断number是不是素数的
当number%divisor==0的时候isPrime就为false了
divisor的生命周期是结束了,它是不是结束跟number是不是一个素数一点关系都没有.

你第2行就有这个变量了