💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ zahra jafarzadeh
جواب مسئله
محسن موحد حل شده توسط محسن موحد
var person = prompt ("who are you?");
var CorrectPassword = 25;
 if (person==="Admin")
 {
     var Userpasswor = prompt ("Password please");
     if (Userpasswor == CorrectPassword) {
        alert("Welcome");
      }
      else {
        alert ("I don't know you")
      }
 } 
  else {
    alert("I don't know you");
  }

سلام،

بسیار عالی، یک نمونه کد هم من میذارم:

const ADMIN_USERNAME = "Admin";
const CORRECT_PASSWORD = 25;
const MAX_ATTEMPTS = 3;
let attempts = 0;
const username = prompt("Who are you?");
if (username === ADMIN_USERNAME) {
    while (attempts < MAX_ATTEMPTS) {
        const userPassword = parseInt(prompt("Password please"));
        if (userPassword === CORRECT_PASSWORD) {
            alert("Welcome");
            break;
        } else {
            attempts++;
            alert(`Incorrect password. Attempts left: ${MAX_ATTEMPTS - attempts}`);
        }
        if (attempts === MAX_ATTEMPTS) {
            alert("Too many incorrect attempts. Access blocked.");
        }
    }
} else {
    alert("I don't know you");
}

 

حالا یک روش دیگه هم مینویسم که if-else‌ها یعنی درواقع else‌ها به حداقل برسه. به این روش میگن Early Return یعنی در واقع جلوتر که پروژه بنویسی و پروژه بزرگتر بشه در آخر میبینی کدهای زیادی رو در if نوشتی (مثلا 20-30 خط کد در if) و 2-3 خط کد در else و این مدام تکرار شده و وقتی میخوای به کد برگردی و کد review کنی، کار سخت میشه و کد از تمیزی خارج میشه و if-else‌های بلند ایجاد میشه در صورتی که میشد else رو در if نوشت و درصورت اجرا در نهایت به return ختم بشه و بقیه کد اجرا نشه و کدی که در حالت اول در if نوشته بودی، خارج از شرط مینویسی. طبق مثالی که نوشتی حالا میخوایم طوری بنویسیم که از if-else‌های تودرتو جلوگیری کنیم:

// Define constant values for authentication
const ADMIN_USERNAME = "Admin";
const CORRECT_PASSWORD = 25;
const MAX_ATTEMPTS = 3;
// Main function to handle access control
function checkAccess() {
    // Prompt user for username
    const username = prompt("Who are you?");
    // Early return if username is incorrect
    if (username !== ADMIN_USERNAME) {
        alert("I don't know you");
        return false;
    }
    // Password validation loop
    for (let attempts = 1; attempts <= MAX_ATTEMPTS; attempts++) {
        // Request password from user
        const userPassword = parseInt(prompt(`Password please (Attempt ${attempts})`));
        // Check if password is correct
        if (userPassword === CORRECT_PASSWORD) {
            alert("Welcome");
            return true;
        }
        // Warn user about incorrect password attempts
        if (attempts < MAX_ATTEMPTS) {
            alert(`Incorrect password. Attempts left: ${MAX_ATTEMPTS - attempts}`);
        }
    }
    // Block access after maximum attempts
    alert("Too many incorrect attempts. Access blocked.");
    return false;
}
// Execute access check function
checkAccess();
بهترین پاسخ
محسن موحد ۰۵ آذر ۱۴۰۳، ۲۲:۳۸