以下代码不会单独打印“IF”方法的值。
注意:我使用了全局变量。如果我将它用作局部变量,我可以打印所有方法的值
目前Oddif(10)
和evenIF(10)
public class even {
int i = 0;
int j = 1;
public static void main(String[] args) {
even o = new even();
o.evenFor(10);
o.evenWhile(10);
o.evenIf(10);
o.OddFor(10);
o.OddWhile(10);
o.OddIf(10);
}
public void evenFor(int n) {
System.out.print("The Even Numbers using For Loop are:" + " ");
for (int i = 0; i <= n; i = i + 2) {
System.out.print(i + " ");
}
System.out.print("\n");
}
public void evenWhile(int n) {
System.out.print("The Even Numbers using while loop are:" + " ");
while (i <= n) {
System.out.print(i + " ");
i = i + 2;
}
System.out.print("\n");
}
public void evenIf(int n) {
System.out.print("The Even Numbers using if loop:" + " ");
while (i <= n) {
if (i <= n) {
System.out.print(i + " ");
i = i + 2;
}
}
System.out.print("\n");
}
public void OddIf(int n) {
System.out.print("The Odd Numbers using if loop:" + " ");
while (j <= n) {
if (j <= n) {
System.out.print(j + " ");
j = j + 2;
}
}
System.out.print("\n");
}
public void OddFor(int n) {
System.out.print("The Odd Numbers using For Loop are:" + " ");
for (int j = 1; j <= n; j = j + 2) {
System.out.print(j + " ");
}
System.out.print("\n");
}
public void OddWhile(int n) {
System.out.print("The Odd Numbers using while loop are:" + " ");
while (j <= n) {
System.out.print(j + " ");
enter code here j = j + 2;
}
System.out.print("\n");
}
}
实际输出:
The Even Numbers using For Loop are: 0 2 4 6 8 10
The Even Numbers using while loop are: 0 2 4 6 8 10
The Even Numbers using if loop:
The Odd Numbers using For Loop are: 1 3 5 7 9
The Odd Numbers using while loop are: 1 3 5 7 9
The Odd Numbers using if loop:
答案 0 :(得分:0)
由于您正在使用全局变量,因此无论何时在方法中更改它,都会保留更改的值。这就是我们使用全局变量的原因之一。
所以,最好让它们成为局部变量。但是如果你坚持将它们保存为全局变量,那么在每个方法中复制变量并对其进行处理。这就是全局变量将如何保持不变。
例如:
public void evenWhile(int n)
{
int temp = i; // taking a copy of global variable
System.out.print("The Even Numbers using while loop are:" + " ");
while(temp <=n)
{
System.out.print(temp +" ");
temp += 2; // changing the local copy, not the global which we need unchanged
}
System.out.println();
}
答案 1 :(得分:0)
问题是程序运行后
OddFor(){}
它会留下j = 11.这就是为什么当你试图运行
时OddWhile(){}
程序将跳过循环,因为j已经大于10。 因此,在每种方法结束时,您可以将i / j的值设置回您开始的值。
答案 2 :(得分:0)
在'If'方法中,如果(i