私はswitch文を追加していくつかの質問に答えることができます。 答えはユーザーの名前で終了したいので、「My name is Alex」と入力すると、「var username」にAlexが保存されます。 "sendUserName"関数を定義する前でも "username"に値が必要です。あなたのコードでswitch文の関数から値を返そうとしています-JS-
<html>
<body>
<script>
var ask = prompt("Ask me anything >>").toLowerCase();
function write(x) {
document.write(x)
};
//Capitalize the first letter func :
function capitalize(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
//..............
var question = ask.split(" ");
var date = new Date;
var userName;
//...............................
write(userName); // <------ here the issue , undefined !
if (question[0] === "what") {
switch (question[1]) {
case "time":
switch (question[2]) {
case "is":
switch (question[3]) {
case "it":
write(date);
break;
default:
};
break;
default:
};
break;
case "is":
switch (question[2]) {
case "your":
switch (question[3]) {
case "name":
write("Alex !");
break;
default:
};
break;
default:
};
break;
default:
write("unknown");
};
} else if (question[0] === "my") {
switch (question[1]) {
case "name":
switch (question[2]) {
case "is":
userName = capitalize(question[3]);;
alert("Your name is saved, " + userName);
function sendUserName() {
return userName;
}
break;
default:
};
break;
default:
};
};
sendUserName();
write(userName); // <------- it's work here
</script>
</body>
</html>
ここであなたが何を求めているのかは分かりません。予想される入出力の例を提供し、何が動作しないのかを指定できますか? – Bolza
確かに、 私は変数 "userName"の値を印刷しようとしています...それは主な目標です... ユーザーがプロンプトウィンドウに入力した場合、私は "my name is anyName" 2番目のifステートメント(question [0] == my)question [0] this = myになります。switchステートメントと次のswitchステートメントに移動します。 sendUserName ...動作していないのは、 "write(username);"です。コードの最初に@hallucinations –