با سلام و تشکر از استاد دادخواه بابت تدریس خوبتان.
در زیر کد های مربوط به حل تمرین به همراه نکاتی آورده شده است.
1- حل با استفاده از ساختار تصمیم if / else / else if
نکته1: برای حل تمرین از این روش باید از شرط های تو در تو (if های تو در تو) استفاده کرد. طبق تجربه من برای اینکه در استفاده از شرط ها تو در تو کیج نشویم بهتر است شرط ها را از بالاترین شرط بنویسیم. به این صورت که ابتدا ساختار شرط اول را کامل کنیم و سپس وارد ساختار شرط دوم شویم.
نکته 2: برای اینکه کاربر دکمه cancel را بزند از حالت window.alert خارج شویم باید از کلمه کلیدی null استفاده کنیم. (لینک مقالهstack overflow )
کد های مربوط به روش اول:
// Do practise white if/else
var user = prompt("Who's there? ");
if (user == "Admin"){
var password = prompt("Pleas inter your password ");
if (password == "TheMaster"){
alert("Welcome! ");
}
else if (password == null){
}
else{
alert("Wrong password ");
}
}
else if (user == null){
}
else{
alert("I don't know you")
}
2- حل تمرین با استفاده از ساختار تصمیم ternary if (:?)
نکته3: برای اینکه به موتور جاوااسکریپت بفهمانیم که در صورت زدن دکمه cancel هیچ پیغامی نشان نده باید از علامت [ ] استفاده کنیم.
نکته4: نمی توان از کلمه کلیدی var در این ساختار استفاده کرد برای همین فقط عبارت password نوشته می شود.
نکته5: این روش کوتاه ترین روش در میان این 3 راه حل است. همچنین برای استفاده از آن باید 2 بار پشت سر هم از ternary if استفاده کنیم.
کد های مربوط به روش دوم:
// Do practise white ternary if (?:)
var user = prompt("Who's there? ");
(user == "Admin") ?
password = prompt("Pleas inter your password ") :
(user == null) ? []: alert("I don't know you");
(password == "TheMaster") ? alert("Welcome! ") :
(password == null) ? [] : alert("Wrong password ");
3- حل تمرین با استفاده از ساختار تصمیم Switch
نکته6: در این روش نیز مانند روش if باید از switch های تو در تو استفاده کرد.
نکته7: برای اینکه به موتور جاوااسکریپت بفهمانیم که در صورت زدن دکمه cancel هیچ پیغامی نشان نده باید از فضای خالی استفاده کنیم.
کد های مربوط به روش سوم:
// Do practise white switch
var user = prompt("Who's there? ");
switch (user) {
case "Admin":
var password = prompt("Pleas inter your password ");
switch (password) {
case "TheMaster":
alert("Welcome! ");
break;
case null:
break;
default:
alert("Wrong password ");
break;
}
break;
case null:
break;
default:
alert("I don't know you");
break;
}