Java作用域和变量的生存期
我编写了以下程序来显示2到50(包括)之间的所有素数。程序按预期运行,但当我重新检查代码时,我想知道为什么它没有失败。Java作用域和变量的生存期,java,scope,lifetime,Java,Scope,Lifetime,我编写了以下程序来显示2到50(包括)之间的所有素数。程序按预期运行,但当我重新检查代码时,我想知道为什么它没有失败。if语句可以更改isprime变量的值。然而,一旦代码块{}的内部被保留,这个更改就不会被忘记吗?这意味着isprime将保持true,并显示所有数字 class Prime { public static void main (String args []) { int a, b; boolean isprime; for (a = 2; a
if
语句可以更改isprime
变量的值。然而,一旦代码块{}的内部被保留,这个更改就不会被忘记吗?这意味着isprime
将保持true
,并显示所有数字
class Prime {
public static void main (String args []) {
int a, b;
boolean isprime;
for (a = 2; a < 51; a++) {
isprime = true;
for (b = a-1; b > 1; b--) {
if (a % b == 0) isprime = false;
}
if (isprime) System.out.println(a);
}
}
}
类素数{
公共静态void main(字符串参数[]){
INTA,b;
布尔互质;
对于(a=2;a<51;a++){
isprime=true;
对于(b=a-1;b>1;b--){
如果(a%b==0)isprime=false;
}
if(isprime)System.out.println(a);
}
}
}
正如您所看到的,它不是这样工作的:变量的作用域是声明它的块,包括任何子块
修改子块中的变量会修改其所有范围。并非每次新块启动时都创建变量的副本。正如您所看到的,它不是这样工作的:变量的范围是声明它的块,包括任何子块
修改子块中的变量会修改其所有范围。并非每次新块启动时都创建变量的副本。正如您所看到的,它不是这样工作的:变量的范围是声明它的块,包括任何子块
修改子块中的变量会修改其所有范围。并非每次新块启动时都创建变量的副本。正如您所看到的,它不是这样工作的:变量的范围是声明它的块,包括任何子块
修改子块中的变量会修改其所有范围。并非每次新块启动时都创建变量的副本
1.“if”语句可以更改“isprime”变量的值
是。内部的if
可以更改isprime
2.然而,一旦内部的“for”代码块{}被留下,这个更改就不会被忘记吗
不,没有忘记
3.这意味着iPrime将保持真实,所有数字都将显示出来
class Prime {
public static void main (String args []) {
int a, b;
boolean isprime;
for (a = 2; a < 51; a++) {
isprime = true;
for (b = a-1; b > 1; b--) {
if (a % b == 0) isprime = false;
}
if (isprime) System.out.println(a);
}
}
}
只有当你忘记了第二个问题(第2个)时,这种情况才会发生
想想看,一个全局变量可以用任何方法改变,因为它的范围是整个程序。这个变量可以用任何方法改变。类似地,isprime
可以在main
中更改,正如在main
中声明的那样,其范围在main
中
1.“if”语句可以更改“isprime”变量的值
是。内部的if
可以更改isprime
2.然而,一旦内部的“for”代码块{}被留下,这个更改就不会被忘记吗
不,没有忘记
3.这意味着iPrime将保持真实,所有数字都将显示出来
class Prime {
public static void main (String args []) {
int a, b;
boolean isprime;
for (a = 2; a < 51; a++) {
isprime = true;
for (b = a-1; b > 1; b--) {
if (a % b == 0) isprime = false;
}
if (isprime) System.out.println(a);
}
}
}
只有当你忘记了第二个问题(第2个)时,这种情况才会发生
想想看,一个全局变量可以用任何方法改变,因为它的范围是整个程序。这个变量可以用任何方法改变。类似地,isprime
可以在main
中更改,正如在main
中声明的那样,其范围在main
中
1.“if”语句可以更改“isprime”变量的值
是。内部的if
可以更改isprime
2.然而,一旦内部的“for”代码块{}被留下,这个更改就不会被忘记吗
不,没有忘记
3.这意味着iPrime将保持真实,所有数字都将显示出来
class Prime {
public static void main (String args []) {
int a, b;
boolean isprime;
for (a = 2; a < 51; a++) {
isprime = true;
for (b = a-1; b > 1; b--) {
if (a % b == 0) isprime = false;
}
if (isprime) System.out.println(a);
}
}
}
只有当你忘记了第二个问题(第2个)时,这种情况才会发生
想想看,一个全局变量可以用任何方法改变,因为它的范围是整个程序。这个变量可以用任何方法改变。类似地,isprime
可以在main
中更改,正如在main
中声明的那样,其范围在main
中
1.“if”语句可以更改“isprime”变量的值
是。内部的if
可以更改isprime
2.然而,一旦内部的“for”代码块{}被留下,这个更改就不会被忘记吗
不,没有忘记
3.这意味着iPrime将保持真实,所有数字都将显示出来
class Prime {
public static void main (String args []) {
int a, b;
boolean isprime;
for (a = 2; a < 51; a++) {
isprime = true;
for (b = a-1; b > 1; b--) {
if (a % b == 0) isprime = false;
}
if (isprime) System.out.println(a);
}
}
}
只有当你忘记了第二个问题(第2个)时,这种情况才会发生
想想看,一个全局变量可以用任何方法改变,因为它的范围是整个程序。这个变量可以用任何方法改变。类似地,isprime
可以在main
中更改,正如在main
中声明的那样,其范围在main
中