728x90
반응형
example : 키보드로 아이디와 패스워드를 입력받는다. 입력 조건은 이름은 문자열, 패스워드는 정수형이다. 입력된 내용을 비교해서 아이디가 "java"이고 패스워드가 12345라면 "로그인 성공"을 출력하고 그렇지 않으면 "로그인 실패"를 출력하도록 코드를 작성하라.
처음엔 17번째 줄에서 if(name == "java)라고 작성했더니 컴파일 하니 계속 로그인 실패만 떴다.
왜 그럴까 ?~ ChatGPT형님께서 답변을 해 주셨다.
코드에서 문자열을 비교할 때, == 연산자를 사용하는 것이 아니라 equals() 메소드를 활용해야 해요. Java에서 == 연산자는 두 문자열이 메모리 상에 같은 위치를 가리키는지를 확인하는 것이기 때문에 문자열 내용의 비교에는 적합하지 않아요.
그래서 코드에서 name 변수를 "java"와 비교할 때, 다음과 같이 equals() 메소드를 사용해야 해요:
C언어 포인터를 배울 때, 문자열은 기본적으로 메모리상 위치를 가르킨다고 배웠었는데 자바에서도 같은 원리인 것 같다. equal 메소드를 사용하니 boolean형으로 바로 변환이되어 if 연산자에 적용이 가능했다.
'Coding 공부 > Java' 카테고리의 다른 글
[Java_Summary] 2차원 배열 (2) | 2024.01.30 |
---|---|
[Java_example]예제 복습 (0) | 2024.01.30 |
[Java_summary] 반복문, 배열, 예제 (0) | 2024.01.25 |
[Java_example] 별 모양 출력 예제 (0) | 2024.01.24 |
[Java_summary] 자료형, 연산자, 조건문, 자바 세팅하기 (4) | 2024.01.24 |
댓글