2017-06-10 10 views
0

これは私が思い付いたコードです。しかし、私は次のいずれかを出力できるようにしたかった:配列値複数出力

  • (値)はスロットxにある。
  • (値)はスロットxにあります。

二つの出力(値)は7

又は

  • 様二つのスロット(NUM)で利用可能である場合、配列されていません。

ただし、両方ではありません。 誰でもお手伝いできますか?

public static void main(String[] args) { 
    int search, counter; 
    int num[]={3, 4, 5, 6, 7, 8, 10, 7, 9, 13}; 

    System.out.print("Array: "); 
    for (int count=0; count<num.length; count++) 
     System.out.print(+num[count] + " "); 

    Scanner in = new Scanner (System.in); 
    System.out.print("\nValue to find: "); 
    search = in.nextInt(); 

    for (counter = 0; counter < num.length; counter++){ 
     if (num[counter] == search) 
     { 
      System.out.println(search + " is in slot " + (counter + 1) + "."); 
     }   
    } 
    if (counter == num.length) 
     { 
      System.out.println(search + " is not in the array."); 
     } 
} 
} 

答えて

1

あなたはおそらく私が提案を提供することができ、そのようなhttps://codereview.stackexchange.com/などの別のコミュニティに、このような質問をする必要があるように私は感じるものの:

あなたが前にそれを発見したかどうかを確認するブールフラグを使用します。このような何か:

public static void main(String[] args) { 
    int search; 
    boolean found = false; 
    int num[]={3, 4, 5, 6, 7, 8, 10, 7, 9, 13}; 

    System.out.print("Array: "); 
    for (int count=0; count<num.length; count++) 
     System.out.print(+num[count] + " "); 

    Scanner in = new Scanner (System.in); 
    System.out.print("\nValue to find: "); 
    search = in.nextInt(); 

    for (int counter = 0; counter < num.length; counter++) { 
     if (num[counter] == search) 
     { 
     System.out.println(search + " is in slot " + (counter + 1) + "."); 
     found = true; 
     }   
    } 

    if (!found) { 
     System.out.println(search + " is not in the array."); 
    } 

    in.close(); 

} 

あなたは、配列を線形横断した後の要素を見つけることができないときにだけ「が見つかりません」のメッセージを印刷し...

+0

は、周りの最も適した仕事をブール値のフラグを使用しているとします。 –

0

あなたのコードの問題は、あなたがチェックしていることですカウンタが配列の長さに達した場合。いつも起こる何か。あなたは値を見つけたかどうかを調べるべきです。

この

は、トリックを行う必要があります。

public static void main(String[] args) { 
    int search, counter; 
    int num[]={3, 4, 5, 6, 7, 8, 10, 7, 9, 13}; 
    boolean wasFound = false; 

    System.out.print("Array: "); 
    for (int count=0; count<num.length; count++) 
     System.out.print(+num[count] + " "); 

    Scanner in = new Scanner (System.in); 
    System.out.print("\nValue to find: "); 
    search = in.nextInt(); 

    for (counter = 0; counter < num.length; counter++){ 
     if (num[counter] == search) 
     { 
      System.out.println(search + " is in slot " + (counter + 1) + "."); 
      wasFound = true; 
     } 
    } 
    if (!wasFound) 
    { 
     System.out.println(search + " is not in the array."); 
    } 
} 
関連する問題