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

时间:2016-09-11 18:39:40

标签: java

以下代码不会单独打印“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: 

3 个答案:

答案 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