2012-06-29 2 views
0

은 나는 바보 뭔가해야하기 때문에이 요청 연기, 그것은이 물었다 나, 나는 주저 점점 좌절 점점 지난 몇 시간을 보냈다도했다 주어진 : Last line of for loop executed twice?System.out을 호출 인쇄 두 번

나는 그것이 비슷한 종류의 감독일지도 모른다라고 생각한다. Java Exception printing twice

하지만 여전히 내를 해결할 수없는 것 :

는 또한 비슷한 문제를 다루는이 발견했다. 언제 입력 0F 콘솔 인쇄 Z set in CCR class 두 번

public boolean zBit(boolean set) { 

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

: 다른이 조각을 호출

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

: 여기

는 하나 개의 클래스에서 미리보기입니다.

누구나 올바른 방향으로 나를 가리킬 수 있습니까? 고마워, 로버트.

는 -EDIT- 내가 가진 동일한 결과를 얻을 수 있음을 추가해야합니다.

if (set) 

if (set == true) 
+1

@thinksteep 사실을 반환합니다. 실제로는 항상 그렇습니다. 변수에 값을 지정하면 출력은 사용자가 지정한 값입니다. 문제는 과제가되어서는 안된다는 것입니다. – TheZ

+1

비교를 위해'='두 번 :'if (set == true)'또는 간단히'if (set)'. 이것이 왜 코드에서 2 인쇄물을 일으키는 지 모르겠다. – pb2q

+0

나는 Java6에 있고 그렇다. 컴파일되고 잘 동작하는 것 같다. – Robert

답변

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; 
} 
+1

답변으로 작성해야합니다. 설명이 너무 많기 때문입니다. –

+0

안녕 파비안은, 는 GUI 클래스 코드의 또 다른 부분이 있습니다 그것은 참으로 그것은 과거의 이동 않습니다 인쇄는 "Z가 설정됩니다": '경우 (ccrFlags.zBit) (거짓) { \t \t \t Z. setText (unset); \t \t} else { \t \t \t Z.setText (flagSet); \t \t \t System.out.println ("Z is set"); \t \t} "if"문 첫 부분에 문제가있는 것 같습니까? – Robert

3

(당신의 조건이 set == true 할 필요가 set = true 다음 true과에 변수를 할당 항상 true으로 평가됩니다.)

확실한 점은 n zBit에 두 번 전화 하시겠습니까? 디버거를 사용하여 확실히 알 수 있습니다.

로깅 래퍼 또는 시스템을 가로 채어 회신하고 반복하지 않는 회선 System.out은 있습니까?

+4

또는 더 succintly :'(설정)'. 그것은 훨씬 더 읽기 쉽습니다. – biziclop

+2

완전히 동의합니다. 오류의 특성을 강조하려고했습니다. '== true'는 항상 중복됩니다. –

+0

@Sean : 충분히 두 번 zBit을 호출한다고 생각합니다. 이유는 아직 모르지만 나는 디버거로 알아 내려고하고있다. 많은 도움에 감사드립니다. – Robert