0

私はこれをJavaで書きましたが、ifエラーなしでelseを取得し続けます。私はそれを何度も調べましたが、エラーを見つけることができません。それは本当に欠落しているのか、それともプログラムの残りの問題なのか?

public class Password {

     public static void main(String[] args) {

        //int Counter = 0;

         String[] UserName = {
            "William Whitcomb" , "Pamela Healy" ,
            "Dennis Clark" , "Troy Bingham" ,
            "Bill Mauler"
         };
        String[] Password = {
            "WWhit0523" , "PHeal0854" ,
            "DClar1053" , "TBing1272" ,
            "BMaul0968"
         };
          String EnterName = JOptionPane.showInputDialog ( "Enter a valid user name.",     //Name pane window
          "User Name");
          String EnterPassword = JOptionPane.showInputDialog ( "Enter a valid password.",       //Age pane window
          "Password");
          for (int Counter = 0; Counter < UserName.length;){
            Validate();
            if (Validate() = true) {
                JOptionPane.showMessageDialog (null, "You entered the User Name of " + UserName[Counter] +
                "and the password of " + Password[Counter]);  //Results pane
                }
            }   //End of for
        }  //End of Method


        Boolean Validate(String EnterName , String EnterPassword){
                Boolean Condition = false;

                    if (EnterName.equals(UserName[Counter])) {
                        if (EnterPassword.equals(Password[Counter])) {
                        Condition = true;
                        return //Condition;
                        } else {
                            JOptionPane.showMessageDialog (null, "You have entered an invalid password.");
                            Counter += 1;
                                }    //End of Inner Else

                    } else {
                        JOptionPane.showMessageDialog (null, "You have entered an invalid user name.");
                        Counter += 1;
                        }  //End of Outer Else
                } //End of outer if
            }  //End of Method
    }   //End of Class
4

5 に答える 5

4

問題はこの行にあると思います:

return //Condition;

誤ってセミコロンをコメントアウトしたため、関係のない解析エラーが発生しました。

多少関連する注意として、関数が a を返す場合、結果をまたはbooleanと比較しないでください。または代わりに書くだけです。truefalseif (Validate())...if (!Validate())...

于 2013-02-11T04:02:06.597 に答える
2

少なくとも 1 つのエラーが表示されます: Validate() = trueである必要がありますValidate() == true。比較を使用する代わりに割り当てています。

さらに短くてもif(Validate())機能します。

しかし、エラー自体は、リターン後のセミコロンの欠落が原因である可能性が最も高いようです。

于 2013-02-11T04:01:01.540 に答える
1

あなたは必要ありません

} //End of outer if

以前に閉じたのでelse。この行を削除します。

コードのフォーマットされたバージョンを見てください

Boolean Validate(String EnterName, String EnterPassword) {
    Boolean Condition = false;

    if (EnterName.equals(UserName[Counter])) {
        if (EnterPassword.equals(Password[Counter])) {
            Condition = true;
            return Condition;
        } else {
            JOptionPane.showMessageDialog(null,
                    "You have entered an invalid password.");
            Counter += 1;
        } // End of Inner Else

    } else {
        JOptionPane.showMessageDialog(null,
                "You have entered an invalid user name.");
        Counter += 1;
    } // End of Outer Else
--> } //End of outer if                 <-- You don't want this line
} // End of Method
于 2013-02-11T04:06:04.787 に答える
0

メソッドvalidateで1つの余分な}を見ました。つまり、メソッド validate() にもう 1 つ } があります。コードを注意深く見てください。削除してください。と ; returnステートメントにありません。メソッドは次のようにする必要があります

Boolean Validate(String EnterName , String EnterPassword){
            Boolean Condition = false;
                if (EnterName.equals(UserName[Counter])) 
                {
                    if (EnterPassword.equals(Password[Counter])) 
                    {
                    Condition = true;
                    return;
                    } 
                else 
                    {
                        JOptionPane.showMessageDialog (null, "You have entered an invalid password.");
                        Counter += 1;
                    }    //End of Inner Else

                } // if closed here
                else {
                    JOptionPane.showMessageDialog (null, "You have entered an invalid user name.");
                    Counter += 1;
                    }  //End of Outer Else
        }  //End of Method
于 2013-02-11T04:05:47.953 に答える
0

変更する必要がある項目のリストを次に示します。

  • クラスの最後に追加のブレースがあります。それを除く。
  • あなたのValidateメソッドは変数を使用しUserNameCounterおり、Passwordどこにも宣言されていません
  • メソッドValidateには、returnセミコロンで終了していないステートメントがあります
  • forループ内のメインメソッドでは、両方の呼び出しがValidate引数なしで行われます(そのうち2つが必要です)
  • あなたのメインメソッド、あなたの最初の呼び出しValidateは事実上ノーオペレーションです(戻り値で何もしません)。それを除く。

これらの問題はすべて、中途半端な IDE によって強調されたはずです。1 つを使用することを強くお勧めします。

于 2013-02-11T04:08:18.887 に答える