-6
import javax.swing.*;


public class Password {
  public static void main(String [] args)
  {
    String password;
    do
    {
      password=JOptionPane.showInputDialog("Password, Please");

      if(password==("N123U"));


      JOptionPane.showMessageDialog(null,"Welcome");

      else
      JOptionPane.showMessageDialog(null,"Try again");

    }while(password.equals("N123U")==false);
  }

}
4

6 に答える 6

2

他の答えは正しいです。ステートメント;の最後にa がありifますが、見ることができます...

 if(password==("N123U"));
                        ^--- This is your problem...

これは、ステートメントが 1 行であっても、ステートメントを常に中かっこで囲むことをお勧めする理由の 1 つです...

 if(password==("N123U")) {
     JOptionPane.showMessageDialog(null,"Welcome");
 } else {
     JOptionPane.showMessageDialog(null,"Try again");
 }

==あなたが(しようとしている)もう1つの問題は、sを比較するために使用しているという事実ですString。これは、オブジェクト参照を比較するだけであり、等しい可能性は低いです。String#equals代わりに、たとえば...を使用する必要があります...

if("N123U".equals(password)) {...}

NullPointerExceptionこれは、 sを回避するのにも役立ちます

于 2013-11-02T00:55:45.293 に答える
0
  if(password==("N123U"));

間違っていることが 2 つあります。あるべき

  if("N123U".equals(password))

  // don't compare strings with == and you have a semicolon, ending the statement
于 2013-11-02T00:53:46.587 に答える
0

2 つのエラーがあると思います。Java で文字列を「==」と比較しようとしています。「while」部分で行うように、文字列には常に .equals を使用してください。「if」の部分はセミコロンで終了しています。そのコードを修正してみましょう。

import javax.swing.*;

public class Password {
  public static void main(String [] args)
  {
    String password;
    do
    {
      password=JOptionPane.showInputDialog("Password, Please");

      if(password.equals("N123U")) {


      JOptionPane.showMessageDialog(null,"Welcome");

      } else {
          JOptionPane.showMessageDialog(null,"Try again");
      }

    }while(password.equals("N123U")==false);
  }

}
于 2013-11-02T00:56:25.690 に答える
0

実際には、"then" ステートメントの周りにブロックを配置するだけで (たとえそれが 1 行であっても)、エラーはより明白になります (視覚的にはそうです)。

今後の参考のために: 単一の ; 空の(別名「何もしない」)ステートメントです。したがって、プログラムに実行するように指示するのは(疑似コード)です:

if (something)
    <do nothing>
JOptionPane.doSomething()
else // <- syntax error here, we're not in an if anymore, so this is invalid
    ...
...
于 2013-11-02T00:56:30.743 に答える