วิธีสร้าง Java Random Number
5. 7. 22. สำหรับเรามนุษย์ การสร้าง random number ง่ายมาก เราแค่ถามตัวเองขอตัวเลข และตัวเลขหนึ่งก็คิดขึ้นมาในใจ
ใน Java การสร้าง random number ง่าย ถ้าคุณรู้วิธี
ในคู่มือนี้ เราจะอภิปรายสามแนวทางที่คุณสามารถใช้สร้าง random number เราจะเดินทางผ่านตัวอย่างว่แต่ละเมธอดทำงานอย่างไรในบริบทของเกมทายตัวเลข
การสร้าง Random Number
เราทุกคนเคยเล่นเกมที่ขอให้คุณทายตัวเลขที่บางจุด บางเกมแม้แต่ให้รางวัลถ้าคุณทายถูก สำหรับคู่มือนี้ เราจะสร้างเกมทายตัวเลขใน Java
ขั้นตอนแรก當然คือการสร้าง random number โดยไม่มี random number เกมของเราจะไม่สนุกเลย มาเดินทางผ่านสามเมธอดที่เราสามารถใช้ทำสิ่งนี้
ใช้ Random Class
Java มีคลาสที่สะดวกชื่อ "Random" ซึ่งคุณสามารถใช้สร้าง random number เราจะเริ่มเกมทายตัวเลขของเราด้วยการใช้คลาส java.util.Random เพื่อสร้าง stream ของ random numbers:
import java.util.Random; class Main { public static void main(String args[]) { Random random_number_generator = new Random(); int random_number = random_number_generator.nextInt(25); System.out.println(random_number); } } เมื่อเรา run class นี้สามครั้ง สาม random numbers ถูกสร้าง:
22 15 19
เราเริ่มด้วยการ import คลาส java.util.Random จากนั้นเราสร้าง instance ของคลาสนี้ชื่อ "random_number_generator" โดยใช้ instance นี้ เราสามารถสร้าง random numbers ได้
81% ของผู้เข้าร่วมระบุว่ารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสงานทางเทคโนโลยีหลังจากเข้าร่วมบูทแคมป์ ได้รับการจับคู่กับบูทแคมป์วันนี้
นักศึกษาจบบูทแคมป์เฉลี่ยใช้เวลาน้อยกว่า 6 เดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มบูทแคมป์จนหางานแรก
เมธอด nextInt() อนุญาตให้เราสร้าง random number ระหว่างช่วง 0 และอีกตัวเลขที่ระบุ ด้านบน เราระบุตัวเลข 25 นี่หมายความว่าตัวเลขทั้งหมดที่ generator ของเราจะคืนจะอยู่ระหว่าง 0 และ 25
ใช้ Math.random()
เมธอด Math.random() ใช้ความพยายามมากกว่านิดหน่อย แต่มันยังเป็นวิธีที่ดีในการสร้าง random number มาสร้าง random number generator sequence ด้วย Math.random():
class Main { public static void main(String args[]) { int small = 0; int large = 25; int random_number = (int)(Math.random() * (large - small + 1) + small); System.out.println(random_number); } } Math.random() มา built-in ใน Java นี่หมายความว่าเราไม่ต้อง import มันในโค้ดของเรา
เราเริ่มด้วยการประกาศตัวแปรสองตัว "small" ระบุ lower bound ที่ไม่ควรสร้างตัวเลขต่ำกว่า "large" คือ upper bound ที่ไม่ควรสร้างตัวเลขสูงกว่า
เราใช้สูตรเพื่อสร้าง random number เพราะ Math.random() ในตัวมันไม่คืนค่า whole random number เมธอด Math.random คืนค่าระหว่าง 0.0 และ 1.0 เราต้องใช้สูตรด้านบนเพื่อแปลงมันเป็น whole number ที่อยู่ในช่วงของเรา
เมื่อเรา run โค้ดของเราสามครั้ง สาม random numbers ถูกสร้าง:
2 1 9
ใช้ ThreadLocalRandom
ThreadLocalRandom เป็นคลาสที่คุณสามารถใช้สร้าง random numbers
คลาสนี้เหมาะสำหรับใช้เมื่อคุณต้องการสร้าง multiple random numbers แบบ parallel นี่มักเกิดใน multi-threading environments
มาสร้าง random number generator ด้วยวิธีนี้:
import java.util.concurrent.ThreadLocalRandom; class Main { public static void main(String args[]) { int small = 0; int large = 25; ThreadLocalRandom random_number_generator = ThreadLocalRandom.current(); int random_number = random_number_generator.nextInt(small, large); System.out.println(random_number); } } เราเริ่มด้วยการ import ThreadLocalRandom library ที่มีคลาสที่เราใช้สร้าง random number จากนั้นเราระบุตัวแปรสองตัวที่ตั้งค่า lower และ upper bounds สำหรับ random number generator ของเรา
เรา declare ตัวแปรชื่อ random_number_generator ที่อ้างอิง ThreadLocalRandom class เราใช้เมธอด nextInt() และระบุตัวแปร "small" และ "large" เป็น arguments เพื่อสร้าง random number
การ execute โปรแกรมของเราสามครั้งคืนค่าสาม random numbers:
4 23 15
ตอนนี้เราพร้อมที่จะเริ่มสร้างส่วนที่เหลือของเกมทายตัวเลขของเรา
สร้าง Guess Logic
ตอนนี้เรารู้วิธีสร้าง random number ขั้นตอนต่อไปในการสร้างเกมของเราคือสร้าง logic ที่อนุญาตให้ผู้ใช้ทาย random number
คุณสามารถใช้ตัวอย่างใดๆ ด้านบนกับโค้ดนี้เพื่อทำให้มันทำงาน ตัวแปร names ในโค้ดสนิปเป็ตของเราถูกตั้งค่าให้ compatible กับตัวอย่างด้านล่าง
มาเริ่มด้วยการใช้คลาส "Scanner" เพื่อขอให้ผู้ใช้ทายตัวเลข:
import java.util.Scanner; class Main { public static void main(String[] args) { // Guessing code goes here Scanner guess = new Scanner(System.in); System.out.println("Guess a number between 1 and 25: "); int user_guess = guess.nextInt(); } } โค้ดนี้ขอผู้ใช้ของเรา "Guess a number between 1 and 25: " ค่าที่ผู้ใช้ป้อนเข้า Java console จะถูกจัดเก็บเป็นตัวแปร "user_guess"
เราจะเขียน if statement ที่ตรวจสอบว่าตัวเลขที่ผู้ใช้ทายเท่ากับตัวเลขที่โปรแกรมของเราสร้างหรือไม่:
... if (user_guess == random_number) { System.out.println("You have correctly guessed the number!"); } else { System.out.println("Your guess is incorrect!"); } มา run โปรแกรมของเราและพิมพ์ตัวเลขระหว่าง 1 และ 25:
Guess a number between 1 and 25: 7 Your guess is incorrect!
หากเราทายตัวเลขถูกต้อง โปรแกรมของเราจะคืนค่าต่อไปนี้:
Guess a number between 1 and 25: 9 You have correctly guessed the number!
ด้วยเพียงไม่กี่บรรทัดของโค้ด เราสามารถสร้างเกมที่สร้าง random number ให้ทายได้สำเร็จ
สรุป
Random numbers มีการใช้งานหลากหลายในการเขียนโปรแกรม ในตัวอย่างนี้ เราเดินทางผ่านว่ารandom number สามารถใช้กับเกมทายตัวเลขได้อย่างไร
มีสามเมธอดที่คุณสามารถใช้สร้าง random numbers:
- ใช้ Random class
- ใช้เมธอด built-in
Math.random() - ใช้ ThreadLocalRandom class
คุณมองหา challenge อยู่ไหม? เปลี่ยนโค้ดเกมทายตัวเลขของเรา ให้คุณสามารถทายหลายครั้งได้