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))

代わりは。文字列が等しいかどうかを比較します(同じものではなく同一かどうかを確認します)。何らかの理由で null のanswer.equals("y")場合、null ポインター例外のリスクがあるため、使用しません。answer

于 2013-10-17T22:54:19.920 に答える