0

配列に含まれる奇数の数をチェックするメソッドを作成しています。アイデアは、for ループを使用して数値が奇数かどうかをテストし、奇数の場合は変数 b を 1 増やし、奇数として b を返すというものです。私は次のように書きました:

for ( int a = 0, b = 0; values[a]%2==1;a++){
b++;
}

return b;

しかし、「return b; ^ bを解決できません」というエラーが表示されます。

私は何を間違っていますか?

4

6 に答える 6

1

定義したスコープ外の変数にアクセスしようとすると、このエラーが発生します。

// b is defined in this scope and available here only
for ( int a = 0, b = 0; values[a]%2==1;a++){

    b++;
}

// Nothing as b is available outside scope
return b;

この問題を修正するbには、より大きなスコープで宣言するだけです。

int b=0;
for ( int a = 0; values[a]%2==1;a++){
    b++;
}

return b;
于 2012-09-10T10:15:23.643 に答える
0

b配列の末尾を確認するために必要な値は必要ありません。あなたが似ているもの

for (int a = 0; a < values.length;a++)
    if(values[a]%2!=1)
        return a;

// currently throws an exception.

あなたが意図したのは、このように見える奇数値の数を数えることです。

int count = 0;
for (int a = 0; a < values.length;a++)
    if(values[a] % 2 !=0)
        count++;
return count;

また

int count = 0;
for (int v: values)
    count += v & 1;
return count;
于 2012-09-10T10:32:32.350 に答える
0

http://www.roseindia.net/java/beginners/IfElse.shtml

このチュートリアルをチェックしてください。それはあなたが知る必要があるすべてを教えてくれるはずであり、あなたのアプローチよりも少し簡単です.

于 2012-09-10T10:15:44.053 に答える