묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
자바소스 보고 답변해 주세요..
2002.10.04 23:02
int tmp1=0,result=0;
System.out.print("가위, 바위, 보를 입력하세요 : ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
if(str == "가위") tmp1=0;
else if(str == "바위") tmp1=1;
else if(str == "보") tmp1=2;
어디가 문제일까요?
바위나 보를 입력해도 0만 출력합니다.
아무래도 if문을 거치지 않는 듯 한데.. 컴파일할때 오류문도 없고..
무슨 문제인지 아시는 분 있으신가요?
System.out.print("가위, 바위, 보를 입력하세요 : ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
if(str == "가위") tmp1=0;
else if(str == "바위") tmp1=1;
else if(str == "보") tmp1=2;
어디가 문제일까요?
바위나 보를 입력해도 0만 출력합니다.
아무래도 if문을 거치지 않는 듯 한데.. 컴파일할때 오류문도 없고..
무슨 문제인지 아시는 분 있으신가요?
댓글 2
-
steelheart
2002.10.05 00:56
-
제플™
2002.10.05 01:28
아.. 그렇군요.. 수업시간에 교수님께서 하신 말씀인데;; 까먹고 있었네요. 감사합니다~
따라서 str == "가위" 라는 구문은 str의 값이 "가위" 인가 조사하는 것이 아니라
str의 레퍼런스가 "가위" 라는 객체의 레퍼런스와 같은가...
C로 말하면 두 개(str, "가위")의 포인터 주소가 같은가 조사하는 겁니다.
그런데 조사해 봤자 서로 다른거니 결과도 당연히 다 틀립니다.
따라서 조건에 만족하는 건 하나도 없게 되는 것이고
tmp1은 디폴트값인 0으로 그대로 남게 되는거죠.
원하는 대로 하시려면 if (str == "가위") 이 부분을 if (str.equals("가위")) 이런 식으로
바꿔 주심 될 것 같네요...