دستورات شرطی در سالیدیتی
22 تیر 1401 1401-04-22 13:16دستورات شرطی در سالیدیتی
دستورات شرطی در سالیدیتی
هنگام نوشتن یک برنامه، ممکن است شرایطی پیش بیاید که شما نیاز دارید یکی از مسیرهای مشخص را انتخاب کنید. در چنین مواردی، شما باید از عبارات شرطی استفاده کنید که به برنامه شما امکان تصمیم گیری صحیح و انجام اقدامات صحیح را می دهد.Solidity از گزاره های شرطی پشتیبانی می کند که برای انجام اقدامات مختلف بر اساس شرایط مختلف استفاده می شود. در اینجا دستورات شرطی در سالیدیتی یعنی If…Else را توضیح خواهیم داد.
در برنامه نویسی، همیشه نیاز به نوشتن منطق شرطی وجود دارد، به طوری که اگر شرایط خاصی برآورده شود، یک قطعه کد خاص اجرا شود، در غیر این صورت یک قطعه کد دیگر اجرا شود. چنین عبارات شرطی با استفاده از عبارات If… Else ترکیب می شوند. همه زبان های برنامه نویسی if… Else یا تنوع آن را دارند.
جهت دریافت اطلاعات بیشتر قبل از مطالعه مقاله زیر توصیه می کنیم مقالات و محتواهای آموزش زبان سالیدیتی را هم مطالعه نمایید.
- هر آنچه که باید در مورد اتریوم بدانید
- قرارداد هوشمند یا اسمارت کانترکت (Smart Contract) چیست؟
- توسعه قرارداد هوشمند در محیط ریمیکس
- چگونه یک برنامه نویس سالیدیتی شویم؟
دستورات شرطی در سالیدیتی
در زبان برنامه نویسی Solidity، سه نوع دستور شرطی وجود دارد که به شرح زیر است:
- دستور if
- دستور if… else
- دستور if… else if
در ادامه به معرفی دستورات شرطی همراه با مثال در زبان برنامه نویسی سالیدیتی آموزش داده خواهد شد تا با جزئیات بیشتر با وضعیت های مختلف در برنامه نویسی سالیدیتی آشنا شوید پس با ما همراه باشید
دستور If در زبان برنامه نویسی سالیدیتی
دستور If عبارت کنترلی می باشد که به سالیدیتی امکان تصمیم گیری و اجرای دستورات را به صورت مشروط می دهد.دستور if در Solidity یک دستور شرطی است که اگر درست باشد، یک تابع را انجام می دهد. دستور if بر اساس درست بودن یک شرط اجرا می شود. اگر هیچ یک از شرایط درست نباشد، بلوک else اجرا می شود.در کد زیر تعریف عبارت if و چند مثال ساده آورده شده است. این مثال ها به شما کمک می کند تا الگوهای دستور if را شناسایی کنید تا بتوانید آنها را در قراردادهای هوشمند خود بازنویسی کنید.
if (condition) { statement or block of code to be executed if the condition is True }
در اینجا یک دستور در زبان سالیدیتی ارزیابی می شود. اگر مقدار به دست آمده True یا درست باشد، دستورهای داده شده اجرا می شوند. اگر عبارت False یا نادرست باشد، هیچ گزاره ای اجرا نمی شود. در بیشتر مواقع، هنگام تصمیم گیری از عملگرهای مقایسه کننده استفاده خواهید کرد.
مثال: در مثال زیر، قرارداد یک متغیر حالت صحیح بدون علامت و یک تابع برای نشان دادن اجرای دستور if اعلام می کند.
// Solidity program to
// demonstrate the
// use of 'if statement'
pragma solidity ^0.5.0;
// Creating a contract
contract Types {
// Declaring state variable
uint i = 10;
// Defining function to
// demonstrate use of
// 'if statement'
function decision_making(
) public returns(bool){
if(i<10){
return true;
}
}
}
تصویر خروجی کد های نوشته شده در قسمت بالا
مثال دیگر از دستورات شرطی If در زبان سالیدیتی
pragma solidity ^0.8.10; contract DemoContract { uint storedData; function set(uint x) public { storedData = x; if (storedData < 50) { storedData = storedData*0; } } function get() public view returns (uint) { return storedData; } }
دستور If…Else در زبان برنامه نویسی سالیدیتی
دستور If…Else فرم بعدی دستور کنترل است که به زبان سالیدیتی اجازه می دهد تا دستورات را با روشی کنترل شده اجرا کند.
// Solidity program to
// demonstrate the use of
// 'if...else' statement
pragma solidity ^0.5.0;
// Creating a contract
contract Types {
// Declaring state variables
uint i = 10;
bool even;
// Defining function to
// demonstrate the use of
// 'if...else statement'
function decision_making(
) public payable returns(bool){
if(i%2 == 0){
even = true;
}
else{
even = false;
}
return even;
}
}
تصویر خروجی کد های نوشته شده در قسمت بالا
مثال دیگر از دستورات شرطی If…Else در Solidity
pragma solidity ^0.8.10; contract DemoContract { uint storedData; function set(uint x) public { storedData = x; if (storedData < 50) { storedData = storedData*0; } else { storedData = storedData*2; } } function get() public view returns (uint) { return storedData; } }
دستور If…Else…If
دستور If…Else If فرم پیشرفته ای از If…Else است که به زبان برنامه نوسی سالیدیتی امکان تصمیم گیری صحیح را از چندین شرایط می دهد.این یک شکل تغییر یافته از عبارت شرطی if…else است که برای تصمیم گیری در میان چندین گزینه استفاده می شود. عبارات از دستور if شروع به اجرا می کنند و به عنوان شرط هر بلوک if درست است، بلوک کد مرتبط با آن اجرا می شود و اگر هیچ یک از شرط ها درست نباشد، بلوک else اجرا می شود.
سینتکس دستور If…Else…If در سالیدیتی
if (condition) { statement or block of code to be executed if the condition is True } else if (condition 2) { statement or block of code to be executed if the condition of else...if is True } else { statement or block of code to be executed if none of the condition is True }
این کد ها مجموعه ای از دستورات If است، جایی که هر If بخشی از Else عبارت قبلی است. دستورات بر اساس شرط True اجرا می شوند، اگر هیچ یک از شرایط True یا درست نباشد، بلوک Else اجرا می شود.
مثال: در مثال زیر، قرارداد یک متغیر حالت صحیح بدون علامت و یک تابع برای نشان دادن اجرای دستور if-else if- اعلام می کند.
// Solidity program to
// demonstrate the use
// of 'if-else if-else statement'
pragma solidity ^0.5.0;
// Creating a contract
contract Types {
// Declaring state variables
uint i = 10;
string result;
// Defining function to
// demonstrate the use
// of 'if...else if...else
// statement'
function decision_making(
) public returns(string memory){
if(i<10){
result = "less than 10";
}
else if(i == 10){
result = "equal to 10";
}
else{
result = "greater than 10";
}
return result;
}
}
تصویر خروجی کد های نوشته شده در قسمت بالا
مثال دیگر از دستورات شرطی if… else if در سالیدیتی
pragma solidity ^0.8.10; contract DemoContract { uint storedData; function set(uint x) public { storedData = x; if (storedData >=0 && storedData < 50) { storedData = storedData*0; } else if (storedData >= 50 && storedData <=100) { storedData = storedData*2; } else if (storedData >= 100 && storedData <=150) { storedData = storedData*3; } else { storedData = storedData*3; } } function get() public view returns (uint) { return storedData; } }