(私はJavaScriptにはあまり新しく、これを使って試してみることに慣れていますが、これはユーザー名とパスワードを格納するためにオブジェクトを使用している理由です。これを見習いの一部として学習していますが、これは私自身の時間の中でJSについての私の知識を向上させるためです) 私はユーザーにユーザー名を入力する必要がある小さなコードを書こうとしましたが、オブジェクト "userNames"のプロパティ名。ユーザーはこのユーザーのパスワードを入力するように求められ、正しいユーザー名で対応するプロパティの値として設定されたパスワードと照合されます。 問題の一部は、「の入力パスワード」(方法としてパスワードのユーザー入力に設定)の変数「userNames」を使用しようとしているかのように感じられます。 3回の試行後にユーザー名またはパスワードが間違っている場合は、ウィンドウを閉じたいと思います。 私のテキストエディタは、Ifステートメントにブランチがないと言っていますが、これが影響するかどうかは分かりません。/ElseステートメントがWhileループ内でネストされている場合
var userNames = {Tom:"PassW0rd", Bill:"Apples40C0lander", Ryan:"M1911p4ck4ge"};
var Greeting = "Insert Username:";
var i = 0;
while (i < 3)
{
var enteredUserName = prompt(Greeting);
var enteredPassword = prompt("enter password for " + enteredUserName);
if ((userNames.hasOwnProperty(enteredUserName)) && (userNames.enteredUserName==enteredPassword)) {
alert("Welcome");
break;
} else {
alert("incorrect Username or Password");
alert("");
window.open('', '_self', ''); window.close();
window.open('', '_self', ''); window.close();
i++
}}
'if'文 –
あなたは私をインクリメントしていない後にセミコロンを削除し、私は3が常に真である<とあなたがレコード生成されています無限ループを実行する – StackOverMySoul
'if-statement 'の後に'セミコロン 'があるため、コードはコンパイルされません。セミコロンは 'if'全体を閉じますので、' else'はそれに属しません - >構文エラーです。 1つのコマンドで 'if'の' short-writing 'と解釈されます。構文は次のとおりです: 'if(expression)command;'。 1つのコマンドしか使用しない場合、 '{'と '}'は必要ありません。他のものが一つもない ';'は '空のコマンド 'と解釈されるので、' if(expression); '' if'を完了します。 – Zabuza