2017-09-20 10 views
-1

私が入力した場合98は、それが6配列内の特定の数字の位置を見つける方法は?

public class OddEven { 
    public static void main(String args[]) { 
     int[] numbers = new int[] { 14, 23, 67, 10, 76, 5, 98, 13, 110 }; 
     for (int i = 0; i < numbers.length; i++) { 
      if(numbers[i]==14) 
       System.out.println(numbers[i]+"position 0"); 
      else 
       System.out.println(numbers[i]+"no. not in the list"); 
     } 
    } 
} 
+1

javascriptタグ。 –

+1

だから何が問題なの? –

+0

ちょうど私を返すと、あなたは位置 – cralfaro

答えて

0

最初の位置を表示することを意味し、テスト容易性などの目的のために別の関数として次のようなものを持っている良いです。これにより、コードが明確になります。それが期待される結果を表示します以下のようにするだけのコードを使用し

public class IndexLookup { 
    int[] numbers = new int[] { 14, 23, 67, 10, 76, 5, 98, 13, 110 }; 
    public int indexOf(int query) { 
     for (int I = 0; I < numbers.length; i++) { 
      if (numbers[I] == query){ 
       return I; 
      } 
     } 
     return -1 
    } 
    public static void main(String[] args) { 
     if (indexOf(98) == -1) { 
      System.out.println("Not in list"); 
     } else { 
      System.out.printf("Found %d at position %d%n", 98, indexOf(98)); 
     } 
} 
+0

ありがとうございました....私は答えを持って.... –

0

:あなたを介してループしている場合は第二に、あなたはおそらくループ内system.out.printlnを行うにはしたくない

だからあなたのような何かをしたいです配列に0の位置を考慮したくない場合は、 'for'ループ内にある 'if'条件内の出力文でi値を常にi + 1に増やすことができます:

  boolean found = false; 
      int[] numbers = { 14, 23, 67, 10, 76, 5, 98, 13, 110 }; 
      Scanner sc=new Scanner(System.in); 

      System.out.println("Enter the number to search"); 
      int num =sc.nextInt(); 
      for (int i = 0; i < numbers.length; i++) { 
       if(numbers[i]==num){ 
        System.out.println(numbers[i]+" position "+i); 
        found =true; 
        break; 
       } 
      } 
      if(!found){ 
       System.out.println("Unable to find the Entered Number in the array"); 
      } 
関連する問題