در این مقاله، به اعتبار سنجی داده ها در جاوا می پردازیم و یک حلقه می نویسیم که داده های ورودی را اعتبارسنجی می کند.
در فصل 5، در این مقاله، یک اپلیکیشن به نام ChooseManager ایجاد کردیم که به کاربر امکان می داد که مقادیر 1 یا 2 را وارد کند، تا یک رویداد خصوصی(private) یا شرکتی(corporate) انتخاب شود تا توسط یک سازمان رسیدگی به رویدادها نگهداری شود.
خروجی این برنامه، نام مدیری است که مسئول یکی از این رویدادها می باشد. در ادامه، قصد داریم برنامه ی ChooseManager را بهبود ببخشیم تا کاربر نتواند برای نوع رویداد، یک انتخاب نامعتبر داشته باشد. اگر کاربر مقادیر 1 یا 2 را وارد نکند، درخواست از کاربر ادامه می یابد تا زمانی که یکی از گزینه های معتبر را وارد کند.
برای بهبود بخشیدن به برنامه ی ChooseManager برای اینکه از ورود داده های نامعتبر اجتناب شود، گام های زیر را انجام دهید:
1. اولین خط های کلاس ChooseManagerWithValidation را وارد کنید.
به جز نام این کلاس، این دستورات با دستوراتی که در کلاس ChooseManager که در فصل 5 ایجاد شد، یکسان هستند. بنابراین، اگر بخواهید، می توانید این خط کدها را از آن فایل کپی کنید تا در زمان صرفه جویی شود. این دستورات، یک کلاس ChooseManagerWithValidation را ایجاد کرده و در آن یک متد به نام main()
را ایجاد می کنند؛ که حاوی ثابت هایی(constant) برای کدهای مدیران و نام آنها می باشد.
در این برنامه از کاربر درخواست می شود تا یکی از مقادیر 1 یا 2 را وارد کند، و یک رویداد خصوصی(private) یا شرکتی(corporate) را نمایش می دهد:
import java.util.Scanner;
public class ChooseManagerWithValidation
{
public static void main(String[] args)
{
int eventType;
String chosenManager;
final int PRIVATE_CODE = 1;
final int CORPORATE_CODE = 2;
final String PRIV_MANAGER = "Dustin Britt";
final String CORP_MANAGER = "Carmen Lindsey";
Scanner input = new Scanner(System.in);
System.out.println("What type of event are you scheduling?");
System.out.print("Enter " + PRIVATE_CODE + " for private, " + CORPORATE_CODE + " for corporate… ");
eventType = input.nextInt();
2. یک حلقه ی while بنویسید که تا زمانیکه ورودی گرفته شده از کاربر، برابر با دو مقدار مجاز نباشد، اجرای آن ادامه یابد. وقتی که ورودی کاربر 1 یا 2 نباشد، کاربر پیغام خطایی را مشاهده می کند و مجاز است که یک مقدار را وارد کند:
while(eventType != PRIVATE_CODE && eventType != CORPORATE_CODE)
{
System.out.println("You made an invalid selection");
System.out.println("You entered " + eventType);
System.out.print("Please enter " + PRIVATE_CODE + " for private, " + CORPORATE_CODE + " for corporate… ");
eventType = input.nextInt();
}
3. در یک خط جدید، یک ساختار تصمیم گیری ایجاد کنید که مقدار متغیر chosenManager را تنظیم کند. اگر eventType برابر با 1 نباشد، پس باید برابر با 2 باشد؛ در غیر این صورت برنامه هنوز حلقه را اجرا می کند و منتظر می ماند تا کاربر یکی از مقادیر 1 یا 2 را وارد کند.
if(eventType == PRIVATE_CODE)
chosenManager = PRIV_MANAGER;
else
chosenManager = CORP_MANAGER;
4. سپس مدیر(manager) را برای نوع رویداد انتخاب شده نمایش می دهیم:
System.out.println("You entered " + eventType);
System.out.println("Manager for this event will be " + chosenManager);
5. حالا آکولادهای بسته را برای متد main()
و برای کلاس، اضافه می کنیم. و این فایل را با نام ChooseManagerWithValidation.java ذخیره می کنیم.
}
}
6. اپلیکیشن را کامپایل و اجرا کنید. صرف نظر از اینکه چه تعداد مقدار نامعتبر را در این برنامه وارد کنید، برنامه ادامه می یابد؛ تا زمانی که شما مقادیر 1 یا 2 را برای نوع رویداد وارد کنید. تصویر 6.23 یک اجرای نمونه ی این برنامه را نشان می دهد.
(تصویر 6.23: اجرای نمونه ی برنامه ی ChooseManagerWithValidation)
در این برنامه، ما داده های ورودی کاربر را اعتبارسنجی کردیم و برای انجام این کار از یک حلقه ی while استفاده کردیم.