0

ばかげたことに違いないので、これを尋ねるのを延期しました。これを尋ねたのも私だったので、躊躇し、最後の数時間をますますイライラして過ごしました: for ループの最後の行が 2 回実行されましたか?

似たような見落としがあるのではないかと思います。

私はこれも見つけました。これは同様の問題を扱っています

しかし、まだ私のものを修正できないようです。

あるクラスのスニペットを次に示します。

switch (Integer.parseInt(oc, 16)) 
{
  case 0x0F:
  ccrFlagState.zBit(true);
  break;
}

このスニペットを別のコードで呼び出す:

public boolean zBit(boolean set) {

    if (set = true) {
        System.out.println("Z set in CCR class");
    }
    return set;
}

0Fコンソールを入力すると、 Z set in CCR class2回印刷されます。

誰かが私を正しい方向に向けることができますか? ありがとう、ロバート。

-編集-次の場合と同じ結果が得られることを追加する必要があります。

if (set)

if (set == true)
4

2 に答える 2

3

これは私には再現できません。このコードは、一度だけ出力します。もっとコードを提供してください...

public static void main(String[] args) {
    String oc = "0F";

    switch (Integer.parseInt(oc, 16)) {
      case 0x0F:
          zBit(true);
          break;
    }
}


public static boolean zBit(boolean set) {
    if (set) {
        System.out.println("Z set in CCR class");
    }
    return set;
}
于 2012-06-29T19:39:02.200 に答える
3

(条件は である必要がありますset == trueset = trueは変数を に代入しtrue、常に に評価しtrueます。)

二度電話していないことをどの程度確信していますzBitか? 確実に知るにはデバッガを使用してください。

ある種のロギング ラッパーや、System.out行を傍受したり繰り返したりする可能性のあるシステムがありませんか?

于 2012-06-29T19:24:13.413 に答える