گرفتن ورودی از کاربر

جاوا تعدادی متد برای گرفتن ورودی از کاربر در اختیار شما قرار می‌دهد. این متدها در کلاس Scanner قرار دارند. این کلاس در پکیج java.util قرار دارد و در نتیجه برای استفاده از آن باید آن را در برنامه به صورت زیر وارد کنید :

import java.util.Scanner;

از کلاس MessageFormat هم برای قالب بندی خروجی استفاده می‌کنیم. این دو کلاس را در خطوط 3 و 4 وارد کرده‌ایم. متدهای کلاس Scanner که مقادیر وارد شده توسط کاربر را از صفحه کلید می‌خوانند عبارتند از :

متد توضیح
nextByte() برای دریافت یک نوع داده از نوع byte به کار می‌رود.
nextShort() برای دریافت یک نوع داده از نوع short به کار می‌رود.
nextInt() برای دریافت یک نوع داده از نوع int به کار می‌رود.
nextLong() برای دریافت یک نوع داده از نوع long به کار می‌رود.
next() برای دریافت یک کلمه ساده به کار می‌رود.
nextLine() برای دریافت یک خط رشته به کار می‌رود.
nextBoolean() برای دریافت یک نوع داده از نوع boolean به کار می‌رود.
nextFloat() برای دریافت یک نوع داده از نوع float به کار می‌رود.
nextDouble() برای دریافت یک نوع داده از نوع double به کار می‌رود.

متدهای بالا، تمام کاراکترهایی را که شما در محیط کنسول تایپ می‌کنید تا زمانی که دکمه Enter را می‌زنید، می‌خوانند. به برنامه زیر توجه کنید :

    1: package myfirstprogram;
    2: 
    3: import java.text.MessageFormat;
    4: import java.util.Scanner;      
    5: 
    6: public class MyFirstProgram 
    7: {
    8:     public static void main(String[] args) 
    9:     {   
   10:         String name;         
   11:         int age;
   12:         double height;
   13:         
   14:         Scanner input = new Scanner(System.in);
   15:         
   16:         System.out.print("Enter your Name: ");
   17:         name = input.next();
   18:         
   19:         System.out.print("Enter your Age: ");
   20:         age = input.nextInt();
   21:         
   22:         System.out.print("Enter your Height:");
   23:         height = input.nextDouble();
   24:         
   25:         System.out.println();
   26:         
   27:         System.out.println(MessageFormat.format("Name is {0}.", name));
   28:         System.out.println(MessageFormat.format("Age is {0}.", age));
   29:         System.out.println(MessageFormat.format("Height is {0}.", height));
   30:     }   
   31: }
Enter your Name: john
Enter your Age: 18
Enter your Height:160.5

Name is john.
Age is 18.
Height is 160.5.

اجازه دهید که برنامه را تشریح کنیم. ابتدادر خطوط 3 و 4 برنامه، کلاس Scanner و MessageFormat را با استفاده از کلمه import به برنامه اضافه کرده‌ایم. در خطوط 10 و 11 و 12 یک شیء برای دریافت نام، یک متغیر از نوع صحیح به نام age برای دریافت سن و یک متغیر از نوع double برای دریافت قد شخص تعریف نموده‌ایم. درباره خط 14 زیاد توضیح نمی‌دهم، فقط کافیست که این را بدانید که، وجود این خط برای دریافت ورودی از کاربر اجباری است. در درس‌های آینده با مفاهیم متد، شیء و کلاس آشنا خواهید شد. برنامه از کاربر می‌خواهد که نام خود را وارد کند (خط 16). در خط 17 شما به عنوان کاربر نام خود را وارد می‌کنید. مقدار متغیر name، برابر مقداری است که توسط متدnext() خوانده می‌شود. از آنجاییکه name از نوع رشته است باید از متد next() برای دریافت استفاده کنیم. در خط 19 برنامه از شما می‌خواهد که سن خود را وارد کند. در خط 20 شما سن خود را وارد می‌کنید. مقدار متغیر age، برابر مقداری است که توسط متد nextInt() خوانده می‌شود. از آنجاییکه Age از نوع صحیح است باید از متد nextInt() برای دریافت استفاده کنیم. سپس برنامه از ما قد را سؤال می‌کند. (خط 22). چون height از نوع double است پس برای خواندن آن از متد ()nextDouble استفاده کرده‌ایم. حال شما می‌توانید با اجرای برنامه و وارد کردن مقادیر نتیجه را مشاهده کنید.