2013-12-23 104 views
-2

我有這個代碼塊在這裏(JAVA):Java如果語句返回不相等?

void findDistance() { 

       String name1 = new String(); 
       Scanner s = new Scanner(System.in); 
       System.out.print("Enter the name of Starting Location: "); 
       name1 = s.next(); 
       name1 = name1.toLowerCase(); 
       for (int i = 0; i < numCities; i++) { 
        System.out.println(name1); 
        System.out.println(cityNames[i]); 
        if (name1 == cityNames[0]){ 
        // int x = i; 
         System.out.print("x"); 

        } 
        else { 
        //  System.out.println(name1); 
        //  System.out.println(cityNames[i]); 
          System.out.println("y"); 
         } 

       } 

       } 

出於某種原因,即使NAME1和cityNames [0]相等,if語句犯規這麼認爲。我有幾個打印語句來返回裏面的值來測試它,並且它的打印效果是相同的。任何人都知道爲什麼會發生這種情況?

+2

使用String equals方法進行字符串比較而不是==。 –

+0

我只是在想這已經過了幾天,因爲有人問過這個問題。 –

回答

4

if (name1 == cityNames[0]){ 

更改爲

if (name1.equals(cityNames[0])){ 

您需要使用==你比較變量的引用使用equals()或以其他方式。