حلقههای for
در سالیدیتی دقیقاً مشابه سایر زبان های برنامه نویسی عمل میکنند و نکته عجیب یا متفاوتی درباره آنها وجود ندارد.
آموزش حلقه های For در سالیدیتی
در مثال زیر، یک قرارداد نوشته شده که مجموع اعداد از ۱ تا ۹۹ را محاسبه میکند:
1 2 3 4 5 6 7 8 9 10 11 12 |
contract ExampleContract { function addNumbers() public pure returns (uint256) { uint256 sum = 0; for (uint256 i = 0; i < 100; i++) { sum = sum + i; } return sum; } } |
در سالیدیتی، میتوانید از عملگر +=
نیز برای کوتاهتر نوشتن عملیات جمع استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 |
contract ExampleContract { function addNumbers() public pure returns (uint256) { uint256 sum = 0; for (uint256 i = 0; i < 100; i++) { sum += i; } return sum; } } |
سالیدیتی از حلقههای while
و do while
هم پشتیبانی میکند، اما استفاده از آنها بسیار نادر است و در این مرحله نیازی به توضیح بیشتر دربارهی آنها نیست.
یکی از رایجترین کاربردهای حلقهی for
در سالیدیتی، پیمایش (iteration) روی آرایهها است. البته هنوز آرایهها را معرفی نکردهایم، بنابراین در بخش مربوط به آرایهها به این موضوع خواهیم پرداخت.
همچنین، مانند سایر زبانها، در solidity هم میتوانید داخل حلقهی for
به صورت زودهنگام (early return
) از تابع بازگردید.
در مثال زیر، کدی نوشته شده که از عدد ۲ شروع میکند و اعداد را تا زمانی که یک مقسومعلیه اول (prime factor) برای عدد داده شده پیدا کند، بررسی میکند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
contract ExampleContract { function findPrimeFactor(uint256 x) public pure returns (uint256) { // از عدد ۲ شروع میکنیم، چون ۱ عدد اول نیست // از <= استفاده میکنیم چون ممکن است x خودش عدد اول باشد for (uint256 i = 2; i <= x; i++) { if (x % i == 0) { return i; } } } } |
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۹ اردیبهشت ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس