2013-12-23 75 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()或以其他方式。