문제

간단한 if-else보다 Java에서 부울을 부정하는 더 좋은 방법이 있습니까?

if (theBoolean) {
    theBoolean = false;
} else {
    theBoolean = true;
}
도움이 되었습니까?

해결책

theBoolean = !theBoolean;

다른 팁

theBoolean ^= true;

변수가 4 글자보다 길면 키 스트로크가 적습니다.

몇 가지가 있습니다

"명백한"방법 (대부분의 사람들을 위해)

theBoolean = !theBoolean;

"가장 짧은"방법 (대부분)

theBoolean ^= true;

"가장 시각적"방법 (가장 불확실하게)

theBoolean = theBoolean ? false : true;

추가 : 메소드 호출에서 토글하고 사용합니다

theMethod( theBoolean ^= true );

할당 연산자는 항상 할당 된 내용을 반환하므로 비트 시대 연산자를 통해 값을 전환 한 다음 메소드 호출에 사용될 새로 할당 된 값을 반환합니다.

부울 null 값을 사용하고 거짓으로 생각하면 다음을 시도하십시오.

static public boolean toggle(Boolean aBoolean) {
    if (aBoolean == null) return true;
    else return !aBoolean;
}

부울 null 값을 손에 넣지 않으면 다음을 시도하십시오.

static public boolean toggle(boolean aBoolean) {
   return !aBoolean;
}

이것들은입니다 가장 깨끗합니다 그들은 방법 시그니처에서 의도를 보여주기 때문에 ! 연산자이며 쉽게 디버깅 할 수 있습니다.

용법

boolean bTrue = true
boolean bFalse = false
boolean bNull = null

toggle(bTrue) // == false
toggle(bFalse) // == true
toggle(bNull) // == true

물론 사용하는 경우 그루비 또는 확장 방법을 허용하는 언어는 확장을 등록하고 간단히 할 수 있습니다.

Boolean b = false
b = b.toggle() // == true

특히 전문적인 일을하지 않는다면 항상 Util 클래스를 사용할 수 있습니다. Ex, 수업 프로젝트의 Util 클래스.

public class Util {


public Util() {}
public boolean flip(boolean bool) { return !bool; }
public void sop(String str) { System.out.println(str); }

}

그런 다음 util 객체 만 만들 수 있습니다Util u = new Util();그리고 반환을위한 무언가가 있습니다 System.out.println( u.flip(bool) );

같은 것을 반복해서 사용하려면 방법을 사용하고 특히 프로젝트에 걸쳐있는 경우 UTIL 클래스를 만드십시오. 그러나 산업 표준이 무엇인지 Dunno. (숙련 된 프로그래머는 저를 자유롭게 수정하십시오)

전에:

boolean result = isresult();
if (result) {
    result = false;
} else {
    result = true;
}

후에:

boolean result = isresult();
result ^= true;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top