Oldingi barcha maqolalarda, qiymatlar, dastur kodini ichida berilayotgan edi(int a=5). Bu yo‘l orqali faqat dasturlashni o‘rganish mumkin, lekin shaxsiy biror qiziqarli dastur tuzib bo‘lmaydi. Chunki, foydalanuvchidan biror qiymat olmasdan, unga foydali, biror natija chiqaraolmaysiz. Demak, odatiy dasturlar, foydalanuvchi bergan ma’lumot asosida ishlaydi va kerakli natijani beradi.

Bu maqolada, dasturdagi o‘zgaruvchilarga, foydalanuvchi dastur ishlayotgan vaqtda qiymat berishni va shu qiymat asosida natija olishni ko‘rsatib o‘taman.

Java dasturlash tilida(console application), foydalanuvchi Java paketidagi «Scanner» klassi orqali dasturga biror ma’lumot kiritishi mumkin. Dasturchi bu klassni, dastur kodiga import qilish lozim. Import qilish degani, shu klass ichidagi barcha metodlarni dastur davomida ishlatish mumkinligini bildiradi. Kerakli klasslarni, asosiy klass e’lon qilishidan oldin e’lon qilib olish lozim.

import java.util.Scanner;

Klassda, simvollarni kiritishdan tashqari, kiritilgan simvolni o‘qish va simvol mavjudligini tekshiruvchi metodlar ham mavjud.

Kiritish oqimi(biror simvolni dasturga kiritish) bilan ishlash uchun, «Scanner» klassini ob’yektini hosil qilishimiz lozim, ob’yekt yaratishda qaysi oqimdan foydalanishni ham berib o‘tish kerak. Standart klaviaturadan kiritiladigan ma’lumotlar «System.in» parametri bilan beriladi.

Scanner sc = new Scanner(System.in);

Ma’lumotlarni chiqarish uchun esa, siz bilgan «System.out» ob’yekti ishlatiladi. Undan tashqari boshqa standart ob’yektlar ham mavjud, misol uchun xatolarni chiqaruvchi «System.err» ob’yekti.

Klaviaturadan kiritiladigan ma’lumotlarni turiga qarab, bu ma’lumotlarni har xil tipdagi o‘zgaruvchilarga o‘zlashtirish mumkin. Agar kiritilgan ma’lumot butun son bo‘lsa, «nextInt» metodi orqali «int» o‘zgaruvchiga o‘zlashtirish mumkin. Keling to‘liq bitta misol ko‘ramiz,

import java.util.Scanner;
class test {
public  static  void main(String  args[]) {
 Scanner sc =new Scanner(System.in);
 int a = sc.nextInt();
    System.out.println(a);
}
}

Misolda, foydalanuvchi tomonidan biror «int» tipidagi son kiritilishi so‘raladi va bu son «int» tipidagi «a» o‘zgaruvchiga o‘zlashtiriladi(sc.nextInt), so‘ng shu o‘zgaruvchi ekranga chiqariladi.

scaner_1

Agar boshqa tipdagi son kiritilsa, xatolik haqida ma’lumot olasiz.

scaner_2

Boshqa tipdagi axborotlar kiritilsa, ularni tipiga qarab kerakli metodni ishlatish lozim. Bu metodlar quyidagilar:

nextByte, nextInt, nextShort, nextLong — butun tipdagi qiymatni o‘zlashtiradi.

nextDouble(), nextFloat — haqiqiy tipdagi qiymatni o‘zlashtiradi.

nextLine() — simvollar ketma-ketligini o‘zlashtiradi(to’liq qatorni oladi).

nextBoolean — mantiqiy qiymatni o‘zlashtirish.

YUqoridagilarni ishlatib, misol ko‘ramiz.

import java.util.Scanner;
class test {
public  static  void main(String  args[]) {
 Scanner sc =new Scanner(System.in);
 System.out.print("Ismini kiriting ");
 String name = sc.nextLine();
 System.out.print("Yoshini kiriting ");
 int old = sc.nextInt();
 System.out.print("Vaznini kiriting ");
 double kg = sc.nextDouble();
 System.out.println("Ismi:"+name+"\nYoshi: "+old+"\nVazni:"+kg);
}
}

Foydalanuvchi tomonidan, ism(string tipi), yoshi(int tipi) va vazni(double tipi) kiritilishi so‘raladi va ular birgalikda ekranga chiqariladi.

scaner_3

Agar, kiritilayotgan qiymat oldindan ma’lum bo‘lmasa, uni dastur ichida tekshirib olish mumkin, uning uchun o‘zlashtirilayotgan metod nomi yoniga «has» kalit so‘zini qo‘shish kifoya va uni «if» operatori orqali tekshirish kerak.

import java.util.Scanner;
class test {
public  static  void main(String  args[]) {
 Scanner sc =new Scanner(System.in);
 int a=0; double aa=0; String aaa="";
 if(sc.hasNextInt())
 {
a = sc.nextInt();
 }
 else if (sc.hasNextDouble())
 {
aa = sc.nextDouble();
 }
 else if (sc.hasNextLine())
 {
aaa = sc.nextLine();
 }
    System.out.println(a);
    System.out.println(aa);
    System.out.println(aaa);
}
}

Foydalanuvchi tomonidan kiritilayotgan ma’lumot qanday tipda ekanligi tekshirildi(hasNextDouble, hasNextInt, hasNextLine) va har bir o‘zgaruvchi ekranga chiqarildi. Tipi to‘g‘ri kelmagan o‘zgaruvchining boshida berilgan qiymati, to‘g‘ri kelgan o‘zgaruvchining esa, kiritilgan qiymati ekranda namoyon bo‘ldi.

scaner_4