("bc" + 2 + 3)
에 대한 두 가지 답변이있는 이유는 무엇입니까? 그리고 (2 + 3 + "bc")
난 단지 "bc"
및 3
및 2
의 순서를 변경하지만 시스템은 또한 사전에왜 두 가지 결과가 있습니까?
감사 완전히 다른 답변을 제공
("bc" + 2 + 3)
에 대한 두 가지 답변이있는 이유는 무엇입니까? 그리고 (2 + 3 + "bc")
난 단지 "bc"
및 3
및 2
의 순서를 변경하지만 시스템은 또한 사전에왜 두 가지 결과가 있습니까?
감사 완전히 다른 답변을 제공
+
작품 모두 연산뿐만 아니라 연결 연산자로. 그리고 모든 표현은 왼쪽에서 오른쪽으로 실행됩니다. 따라서 2 + 3 + "bc"
의 경우 산술 연산자로 2와 3을 추가 한 다음 한쪽에 문자열이 있고 다른쪽에 숫자가있는 경우 해당 시간에 연결 연산자로 작동합니다.
+
을 사용하여 문자열에 어떤 것이 추가 될 때 Java는 해당 문자열을 문자열에 연결하려는 것으로 처리합니다.
각 사례를 살펴 보겠습니다.
"bc" + 2 + 3
+
"bc" + 2
입니다. 이 값은
"bc2"
입니다. 그런 다음
"bc2" + 3
을 평가하여
"bc23"
을 산출합니다.
2 + 3 + "bc"
개의 최 좌측 피연산자 제 평가 : 2 + 3
표현식에는 캐릭터가 없기 때문이다 5. 평가. +
은 수학적으로 더하기를 수행합니다. 그런 다음 5 + "bc"
을 평가하여 "5bc"
을 산출합니다.
자바가 왼쪽에서 오른쪽으로 작업을 읽습니다. 첫 번째 변수가 문자열이면 나머지 값이 연결됩니다. 두 번째 경우에는 먼저 숫자를 합산 한 다음 그 값을 다음 문자열로 연결해야합니다. 첫 번째 경우 : "bc23"이고 두 번째 경우는 "23bc"입니다.
첫 번째 자바에 문자열 값을 입력하면 처음 두 값을 계산할 수 없다면 모든 값을 문자열로 처리합니다.
여기에 기본 개념을 이해하는 데 도움이되는 예제 코드가 나와 있습니다.
public static void main(String[] args) {
// TODO code application logic here
System.out.println("bc"+2+3); //bc23
System.out.println("bc"+(2+3)); //bc5
System.out.println(2+3+"bc"); //5bc
System.out.println(2+3+"bc"+2+3); //5bc23
System.out.println("bc"+2+3==2+3+"bc");// false
}
평가 순서 – UnholySheep
A [mcve]을 입력하세요 때문에, 예를 들어 작업 코드 예제 및 샘플 출력 – juzraai
질문을 수정하고 스크린 샷 대신 코드와 출력을 복사/붙여 넣기하십시오. 색인 생성이 훨씬 쉽게됩니다. –