การรับค่าบนแป้นพิมพ์ ด้วย java.util.Scanner
ก่อนอื่น เราต้อง import java.util.Scanner; เพื่อบอกให้ทราบว่า เราจะใช้ class Scanner
เมื่อ import เสร็จแล้ว เราก็ต้องสร้างตัวแสกน โดยใช้คำสั่ง Scanner Sc = new Scanner(System.in); เมื่อ Sc คือตัวแปรที่ใช้รับค่าที่แสกนจากแป้นพิมพ์ เมื่อดูจากโค้ด จะเห็นว่า เราได้สร้างตัวแปรประเภท Scanner ชื่อว่า Sc โดยสร้างเป็นออบเจ็ค ซึ่งจะเห็นได้จาก new Scanner และในวงเล็บ System.in เพื่อให้ทราบว่ารับค่ามาจากแป้นพิมพ์นั่นเอง
เมื่อได้ตัวแปรรับค่ามาแล้ว เราก็ต้องมาเอาตัวแปรที่รับค่านั้น มาแบ่งเป็นประเภทของข้อมูล แล้วยัดใส่ตัวแปรแต่ละประเภท ซึ่งใช้คำสั่งคือ
String s = Sc.nextLine(); //ใช้สำหรับรับค่าเป็น Sting
int i = Sc.nextInt(); //ใช้สำหรับรับค่าเป็น interger
float f = Sc.nextFloat(); //ใช้สำหรับรับค่าเป็น float
double d = Sc.nextDouble(); //ใช้สำหรับรับค่าเป็น double
long l = Sc.nextLong(); //ใช้สำหรับรับค่าเป็น long
...ฯลฯ...
จากโค้ดข้างบน เราจะเห็นว่า เราได้สร้างตัวแปรชนิด String ชื่อว่า S แล้วกำหนดให้รับค่าจากแป้นพิมพ์ซึ่งรับค่าผ่านตัวแปร Sc ที่รับเป็นชนิด String
เรามาดูตัวอย่างโค้ดแบบเต็ม ๆ กันเลยดีกว่า
ตัวอย่างที่ 1
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner Sc = new Scanner(System.in); System.out.print("Insert Name : "); String s = Sc.nextLine(); System.out.println("Yourname " + s ); } }
Output ที่ได้คือ Insert Name : แล้วเคอเซอร์จะหยุดเพื่อให้กรอกข้อมูล เช่น เรากรอก Doesystem บรรทัดต่อไปจะเป็น Yourname Doesystem
ตัวอย่างที่ 2
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner Sc = new Scanner(System.in); System.out.print("Insert Number1 : "); int First = Sc.nextInt(); System.out.print("Insert Number2 : "); int Second = Sc.nextInt(); System.out.println("Sum : " + (First + Second) ); } }
Output ที่ได้คือ Insert Number1 : 1 Insert Number2 : 2 Sum : 3 เลข 1 กับเลข 2 เป็นลขที่เรากรอกในโปรแกรม ส่วนเลข 3 เป็นผลรวมระหว่าง 1 กับ 2
ตัวอย่างที่ 3
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner Sc = new Scanner(System.in); System.out.print("Insert Number1 : "); String First = Sc.nextLine(); System.out.print("Insert Number2 : "); String Second = Sc.nextLine(); System.out.println("Sum : " + (First + Second) ); } }
Output ที่ได้คือ Insert Number1 : 1 Insert Number2 : 2 Sum : 12 เลข 1 กับเลข 2 เป็นลขที่เรากรอกในโปรแกรม ส่วนเลข 12 เป็นผลรวมระหว่าง 1 กับ 2 รวมในที่นี้หมายถึง เอา String มาต่อกันนั่นเอง เนื่องจากโค้ดข้างบนค่าที่เรารับมาเป็นแบบ nextLine ซึ่งเป็นการรับแบบสตริง ถึงแม้ว่าเราจะกรอกตัวเลขไปก็ตาม