0

这是程序

import java.util.Scanner; //imports class

public class blank2 {

    public static void main(String[] args) {

     Scanner in = new Scanner(System.in);
     boolean valid = true;
     String ans;
     ans = in.next(); //answer is a string

如果您输入“y”,它会直接转到 else 语句。

while (valid == true)
{

它总是跳过这个语句

    if (ans == "y")
    {
       System.out.println("it works");
       valid = false;
    {
    else
    {   
       System.out.println("no work");
       valid = false;
    {   
}   


   }

}

它只是行不通

4

2 回答 2

6
 if (ans == "y")

不要将字符串与==. 比较对象引用(相同的字符串)。利用:

 if ("y".equals(answer))

反而。它将比较字符串是否相等(检查它们是否相同而不是相同)。如果出于任何原因为空,answer.equals("y")由于存在空指针异常的风险,我不使用。answer

于 2013-10-17T22:54:19.920 回答
0

在字符串中,不要使用==,你可以使用compareTo

  if ("y".comprateTo(answer))

使用此方法,您可以检查它们是否相同,或者是否一个大于另一个。

如果您有任何问题,请告诉我们

于 2013-10-17T22:57:15.457 回答