-3

私のコードはこのようになります...それはゼロの出力を与えます...私を助けてください..事前に感謝します:)

    final AutoCompleteTextView inputValues = (AutoCompleteTextView) findViewById(R.id.txt_input);

    final TextView GeoMean= (TextView) findViewById(R.id.txt_GeoMean);

    Button btnCalculate = (Button) findViewById(R.id.btncalculate);
    btnCalculate.setOnClickListener(new OnClickListener(){


        @Override
        public void onClick(View agr0) {

String []values = ( inputValues.getText().toString().split(","));
    int [] convertedValues = new int[values.length];

                int product=1;
                    for(int a = 1; a <=convertedValues.length; a++){

                   product*=convertedValues[a];
               }


                tv_product.setText(Double.toString(product));
4

5 に答える 5

0
It gives an output of zero..

ここだから int[] convertedValues = new int[values.length];

のすべての値 convertedValues はデフォルト、つまり 0です

ここでは product*=convertedValues[a]; // first time1*0 then0*0を使用していますetc

次のコードを使用します。

for (int a = 0; a < convertedValues.length; a++) {
            convertedValues[a]=Integer.parseInt(values[a]);// Just add this Line
            product *= convertedValues[a];
    }

今すぐマジックを見る

于 2013-09-16T08:29:25.957 に答える
0

int [] convertedValues = new int[values.length];このステートメントは、長さ = の int 配列を作成しますvalues.length

読み取られている値は保存されません。あなたが望むものを達成するために、このようにすることができます:

String []values = ( inputValues.getText().toString().split(","));
    int [] convertedValues = new int[values.length];
    int i=0;
    for(String temp:values){
        convertedValues[i++] = Integer.parseInt(temp);
}
于 2013-09-16T08:29:40.097 に答える
0

に関して:

String []values = ( inputValues.getText().toString().split(","));
int [] convertedValues = new int[values.length];

同じサイズの整数配列を作成しますが、欠落しているように見えるのは、 からvaluesへの情報の転送ですconvertedValues

その転送がなければ、整数配列はゼロ値の配列である初期状態を維持します。

次のようなことをする必要があります:

for (int i = 0; i < values.length; i++)
    convertedValues[i] = Integer.parseInt(values[i]);

(あなたが考えるように1ベースではなく、Javaのゼロベースの配列、そしてNumberFormatException文字列が有効でない場合に備えてキャッチすることを確認してください)それを使用しようとする前に、おそらくまったく新しい配列を作成する必要はありません。おそらく、計算ループを次のように変更できます。

for (int i = 0; i <= values.length; i++)
    product *= Integer.parseInt(values[i]);

そのため、コード セグメント全体に関しては、おそらく次のコードが適切な出発点になるでしょう。

String[] values = inputValues.getText().toString().split(",");
int product = 1;
try {
    for (int i = 0; i < values.length; i++) {
        product *= Integer.parseInt(values[i]);
    }
} catch (NumberFormatException e) {
    product = 0; // or something more suitable
}
于 2013-09-16T08:30:33.720 に答える
0

新しい int 配列が表示されます..どこに値を入れますか? つまり、ステートメント int [] convertValues = new int[values.length]; の後。

于 2013-09-16T08:30:53.483 に答える