2013-09-02 4 views
1

무엇인가 이유로 내 (기본) 프로그램은 항상 else 문에 예약 된 텍스트를 인쇄합니다. 나는 자바에 관해서 newb이다. 그래서 내가 명백한 실수를한다면 나는 사과한다. 나는 또한 높고 낮은 답변을 찾았지만 찾을 수 없었다. 이 살펴 수 : 항상`else`를 실행하지 않습니다.

package test; 

import java.util.Scanner; 

public class tutorial_7 { 

    private static Scanner x; 

     public static void main(String args []) { 
      x = new Scanner(System.in); 

      System.out.print("Apples, or oranges: "); 
      String bog = x.next(); 

      if (bog == "Apples") { 
       System.out.print(1); 
      } 
      if (bog == "Oranges") { 
       System.out.print(2); 
      } 
      else { 
       System.out.print(3); 
      } 
     } 
    } 
} 

이유는 텍스트 내 if 문은 결코 출력되지 않습니다 예약되어? 모든 것이 괜찮은 것 같습니다.

감사합니다, JavaNoob

+3

사용'.equals'가 == 대신'의 문자열을 비교하는':

비교 문자열 등의 equals() 방법으로 수행해야합니다. – Vulcan

+0

감사합니다, 벌컨. 그리고 arshaiji, 내가 그 게시물을 미리 발견했다 내 질문을 해결했을 거라고 생각해. 참조 주셔서 감사합니다. – JavaNoob

+0

그 대신 equals 메서드를 사용해야합니다. 이것을 읽으십시오. http://www.thejavageek.com/2013/07/27/string-comparison-with-equals-and-assignment-operator/ –

답변

4

는 개체의 정체성에 대한의 문자열을 비교하는 ==를 사용하지 마십시오.

if (bog.equals ("Oranges")) { 
+0

완벽. 내가 할 수있을 때 (9 분, 타이머가 말한다)이 대답을 받아 들일 것이다. 그것은 C++과 Python에도 익숙해 보입니다. – JavaNoob

관련 문제