2016-09-29 6 views
-1

numValueに等しいuserValues(NUM_VALS個の要素を持つ)の要素の数にnumMatchesを設定します。例:matchValue = 2の場合とuserValues = {2、2、1、2}、その後= 3JAVA:配列内の値の検索

import java.util.Scanner; 

public class FindMatchValue { 
public static void main (String [] args) { 
    final int NUM_VALS = 4; 
    int[] userValues = new int[NUM_VALS]; 
    int i = 0; 
    int matchValue = 0; 
    int numMatches = -99; // Assign numMatches with 0 before your for loop 

    userValues[0] = 2; 
    userValues[1] = 2; 
    userValues[2] = 1; 
    userValues[3] = 2; 

    matchValue = 2; 

    **/* Your solution goes here */** 

    numMatches = 0; 

for(i = 0; i < NUM_VALS; ++i) { 
    if(userValues[i] == matchValue) 
     numMatches = i; 
}   
    System.out.println("matchValue: " + matchValue + ", numMatches: " +  numMatches); 

    return; 
    } 
} 

numMatches私の解決策は、私は理解できない誤りを有しています。

テストmatchValue = 0、

userValues = {0、0、0、0、0}

期待値:5

実際の値:I「の場合4 < < <これは私は間違っています。

+0

あなたの質問は...ですか? – Rudy

答えて

2
for(i = 0; i < NUM_VALS; ++i) { 
    if(userValues[i] == matchValue) { 
     //numMatches = i; //WRONG 
     numMatches++;  //Correct 
    } 
} 

このブロックが間違っているあなたではなく、配列のインデックス値にnumMatchesを割り当てている、それはnumMatchesの試合インクリメント値が1

1

numMatches++であるかどうこれは何であるとされている必要がありますnumMatches = i;の代わりにforループで行う必要があります