از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
آیا بیانیه “goto” در Bash وجود دارد؟
سرفصلهای مطلب
آیا بیانیه “goto” در Bash وجود دارد؟
آ “رفتن به” بیانیه یک ساختار برنامه نویسی است که به برنامه نویسان اجازه می دهد تا به قسمت خاصی از کد بپرند. این یک ویژگی بحث برانگیز به دلیل پتانسیل آن برای دشوار کردن خواندن و درک کدها در نظر گرفته می شود. با این حال، می تواند در برخی موارد مفید باشد، به ویژه هنگامی که با جریان های کنترل پیچیده سروکار داریم.
در Bash، هیچ پشتیبانی مستقیمی از آن وجود ندارد “رفتن به” در عوض، Bash ساختارهای جایگزینی را ارائه میکند که میتوانند به همان اثر a دست یابند “رفتن به” بیانیه.
به عنوان مثال ‘زنگ تفریح’ و ‘ادامه هید’ دستورات به برنامه نویسان اجازه می دهد تا از حلقه ها خارج شوند یا از تکرارها در یک حلقه رد شوند. به طور مشابه، Bash فراهم می کند ‘برگشت’ عبارت برای خروج از یک تابع و بازگشت به کد فراخوانی.
# یک تابع برای اضافه کردن دو عدد تعریف کنید
تابع افزودن_اعداد {
اگر [ $# -ne 2 ]; سپس
اکو “خطا: دو عدد برای اضافه کردن بدهید”
برگشت 1 # عملکرد خروج با وضعیت خطا
فی
نتیجه=$(( 1 دلار + 2 دلار ))
اکو $نتیجه
}
نتیجه=$(افزودن_اعداد 10 20)
اگر [ $? -eq 0 ]; سپس
اکو “نتیجه: $نتیجه“
دیگر
اکو “عملکرد با کد خطای $ ناموفق بود؟”
فی
کد یک تابع فراخوانی را اعلام می کند افزودن_اعداد که دو آرگومان می گیرد، بررسی می کند که آیا دقیقاً دو آرگومان ارائه شده است یا خیر، دو عدد را اضافه می کند و نتیجه را در متغیر نتیجه ذخیره می کند.
اسکریپت سپس آن را فراخوانی می کند افزودن_اعداد تابع با دو آرگومان و بررسی وضعیت بازگشت تابع با استفاده از ‘$؟’ متغیر. اگر تابع موفق شد (وضعیت بازگشت 0) نتیجه را چاپ می کند، در غیر این صورت یک پیام خطا با وضعیت بازگشت تابع چاپ می کند:
جایگزین دیگری برای “رفتن به” عبارت در Bash است مورد بیانیه از آنجایی که عبارت case شبیه دستور سوئیچ در سایر زبان های برنامه نویسی است و به برنامه نویسان اجازه می دهد تا بلوک های کد خاصی را بر اساس آن اجرا کنند. روی مقدار یک متغیر این بیانیه مورد می توان از آن برای دستیابی به اثری مشابه استفاده کرد “رفتن به” بیانیه. در زیر کدی وجود دارد که فقط دو عدد صحیح را با استفاده از منطق یکسان اضافه می کند روی که بیانیه goto آثار:
# دو عدد از کاربر را بخوانید
خواندن -پ “اولین شماره را وارد کنید:” num1
خواندن -پ “شماره دوم را وارد کنید:” num2
تابع افزودن_اعداد {
نتیجه=$(( 1 دلار + 2 دلار ))
# خروجی نتیجه را برای کاربر
اکو “نتیجه: $نتیجه“
}
مورد $num1$num2 که در
*[!0–9]*)
اکو “خطا: اعداد صحیح معتبر وارد کنید”
;;
*)
افزودن_اعداد $num1 $num2
;;
اساک
ابتدا دستور خواندن برای درخواست از کاربر برای وارد کردن دو عدد و سپس عدد استفاده می شود افزودن_اعداد تابع دو عدد را جمع می کند و نتیجه را به کاربر می دهد. برای بررسی اینکه آیا هر دو عدد اعداد صحیح معتبر هستند یا خیر، کد از کد استفاده می کند بیانیه مورد. اگر هر یک از اعداد یک عدد صحیح معتبر نباشد، اسکریپت یک پیغام خطا و اگر هر دو عدد صحیح معتبر باشند، آنگاه افزودن_اعداد تابع فراخوانی می شود تا اعداد را با هم جمع کند و نتیجه را به دست آورد.
با استفاده از بیانیه مورد برای بررسی ورودی، اسکریپت از نیاز به a اجتناب می کند “رفتن به” عبارت برای پرش به بخش خاصی از کد مبتنی بر روی مقدار ورودی:
نتیجه
Bash پشتیبانی مستقیمی برای بیانیه “برو”. با این حال، Bash ساختارهای جایگزینی مانند دستورات break، continue، return و case را ارائه میکند که میتوانند به اثرات مشابهی دست یابند. بیانیه “برو”.. مانند هر زبان برنامه نویسی، استفاده عاقلانه از این ساختارها و اجتناب از استفاده بیش از حد از آنها ضروری است. استفاده صحیح از ساختارهای جریان کنترل می تواند کد را خواناتر و قابل نگهداری تر کند، در حالی که استفاده بیش از حد می تواند درک و اشکال زدایی کد را دشوار کند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 01:28:03