2016-09-11 3 views
-3

以下のコードは、 "IF"メソッドの値だけを出力しません。グローバル変数を使用して "IF"メソッドの出力を出力できません

注:私はグローバルvariables.Ifを使用しているローカル変数iが

現在の出力は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: 
+1

問題はグローバル変数を使用しています。 – Kayaman

+0

はい。グローバル変数を使用したIFメソッドの出力を希望しますか? –

答えて

0

グローバル変数を使用しているため、メソッドで変更するたびに、変更されたvアウエー。これがグローバル変数を使用する理由の1つです。

したがって、ローカル変数を作成する方がよい。しかし、あなたがグローバル変数としてそれらを保持することを主張する場合は、各メソッドの変数のコピーを作成し、それに取り組んでください。グローバル変数は変わらないでしょう。例えば

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

メソッドが動作していない場合は、メソッドの実行中に正常に機能しましたか?お勧めできますか?グローバル変数が変更されていないので、 –

+0

は動作するはずです。これらの 'if'メソッドのロジックを再確認してください。そしてもう一度、なぜあなたは 'if'の条件をチェックしていますか?なぜなら、前に' while'で同じ条件をチェックしているのでしょうか?冗長ではないですか? – Shahid

0

問題は、プログラムが

OddFor(){} 

を通じて実行後に​​それはあなたが

OddWhile(){} 
を実行しようとすると、なぜだJ = 11のままにするということです

jは既に10より大きいので、プログラムはループをスキップします。 各メソッドの最後で、i/jの値をあなたが始めた値に戻すことができます。

+0

ありがとう非常に感謝:) –

0

'If'メソッドでは、if(i < n)という条件があります。この条件は満たされない。 これは、i = n = 10であるためです.iはevenWhileメソッドで10に設定されています。

関連する問題