无法使用全局变量打印"IF"方法的输出



下面的代码不单独打印"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: 

由于您使用的是全局变量,因此无论何时在方法中更改它,它都会保留更改后的值。这就是我们使用全局变量的原因之一。

所以,最好让它们成为局部变量。但是,如果您坚持将它们保留为全局变量,请在每个方法中复制变量并对其进行处理。这就是全局变量保持不变的方式。

例如:

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();
}

问题是程序运行完

之后
OddFor(){}

j = 11。这就是为什么当你试图运行

OddWhile(){}

程序将直接跳过循环,因为j已经大于10。因此,在每个方法结束时,您可以将i/j的值设置回您开始时的值。

在'If'方法中,您有一个条件If (i <n).此条件不满足。这是因为i>

最新更新