ไวยากรณ์พื้นฐานของ Java การดำเนินการหลักของภาษา เงื่อนไข if คำสั่ง
วัตถุประสงค์ คุณสมบัติ และประโยชน์ของ Eclipse
Eclipse เป็น IDE ที่ขยายได้ (Integrated Development Environment) IDE คือชุดเครื่องมือที่จัดระเบียบอย่างสะดวกซึ่งจำเป็นต่อการทำงานในโครงการซอฟต์แวร์
Eclipse เป็นแพลตฟอร์มสากลที่สามารถใช้ในการพัฒนาแอปพลิเคชันในภาษาการเขียนโปรแกรมใด ๆ (เช่น คุณสามารถใช้ Python หลังจากติดตั้งการเชื่อมต่อ Pydev () แต่ Java นั้นมาจาก Eclipse (ซึ่งก็คือเขียนใน Eclipse) .
นี่คือสิ่งที่เงื่อนไขให้บริการ ในการทำเช่นนี้ เราต้องกำหนดตัวอย่างของเรา ในท้ายที่สุด นั่นคือ การปิดวงเล็บปีกกา คอมไพเลอร์จะนำเรากลับไปที่จุดเริ่มต้นของลูป ถ้าเราไม่ทำสิ่งนี้เราจะไม่เข้าไป ไม่เป็นไรเพราะเราตรวจสอบเงื่อนไขก่อนเข้าลูป! ง่ายมาก: วนซ้ำ!
ความสนใจ เราจะต้องรีเซ็ตตัวแปรการตอบสนองเป็น นี่คือโปรแกรมของเราโดยรวม คุณสามารถตรวจสอบรหัสนี้: คุณจะเห็นว่าถ้าคุณป้อนตัวอักษรไม่ถูกต้องโปรแกรมจะถามคำถามคุณดังภาพต่อไปนี้! ระมัดระวังในการเขียนเงื่อนไขของคุณอย่างถูกต้อง และตรวจสอบตัวแปรของคุณในระหว่างและในลูปทั้งหมดของคุณโดยทั่วไป ลองรันโปรแกรมก่อนหน้าโดยไม่ต้องรีเซ็ตตัวแปรการตอบสนอง แล้วคุณจะเห็นผลลัพธ์! สิ่งนี้เรียกว่า "วนซ้ำไม่รู้จบ" หากคุณเปิดโปรแกรมนี้ คุณจะเห็น "ไอ้บ้าเอ๊ย 1 ครั้ง!" ทางดาราศาสตร์
คุณสมบัติที่สำคัญที่สุดของ Eclipse คือ:
- ข้ามแพลตฟอร์ม Eclipse ทำงานบนแพลตฟอร์มทั่วไปทั้งหมด: Windows, Linux และ MacOS X ที่สำคัญกว่านั้น ฟังก์ชันการทำงานจะเหมือนกันในแต่ละแพลตฟอร์มเหล่านี้
- ความเก่งกาจและการขยาย Eclipse ให้ความสามารถในการใช้เครื่องมือของบุคคลที่สามที่หลากหลาย
- การเปิดกว้างและบำเหน็จ Eclipse เป็นโครงการ OpenSource (เช่น รหัสที่มามีให้สำหรับทุกคนและทุกคนสามารถเข้าร่วมการพัฒนาเครื่องมือนี้ได้) Eclipse มีชุมชนที่กระตือรือร้นทำงานอย่างต่อเนื่องเพื่อปรับปรุงโปรแกรมและขยายขีดความสามารถ
พื้นที่ทำงาน Eclipse
สิ่งแรกที่คุณจะเห็นเมื่อคุณเริ่ม Eclipse คือกล่องโต้ตอบที่ให้คุณเลือกได้ว่าจะให้พื้นที่ทำงานอยู่ที่ใด พื้นที่ทำงานคือไดเร็กทอรีที่จะบันทึกงานของคุณ
นี่จะให้ตัวเลขต่อไปนี้แก่เรา คุณสามารถใช้ไวยากรณ์นี้ได้เช่นกัน ควรสังเกตว่ามีหนึ่งลูปสำหรับลูป: ด้วยไวยากรณ์นี้ตัวดำเนินการการเพิ่มขึ้นจะมีความสำคัญเหนือตัวดำเนินการความไม่เท่าเทียมกันเช่น ลูปเพิ่มค่าของตัวแปร a และหลังจากทำสิ่งนี้เสร็จแล้ว มันจะตรวจสอบเงื่อนไข!
อันที่จริงสองลูปนี้ไม่ใช่ลูกพี่ลูกน้อง แต่เป็นพี่น้องกัน งานของพวกเขาเหมือนกันในสองส่วน นั่นคือขั้นตอนการทดสอบของเงื่อนไขจะดำเนินการในตอนท้ายเนื่องจากเงื่อนไขเกิดขึ้นหลังจากเวลาผ่านไป อย่าลืม มิฉะนั้น โปรแกรมจะไม่คอมไพล์ นอกเหนือจากสององค์ประกอบนี้ บานพับเหล่านี้ทำงานในลักษณะเดียวกันทุกประการ
หลังจากเลือกพื้นที่ทำงานแล้ว หน้าเริ่มต้นจะปรากฏขึ้นบนหน้าจอ พร้อมคำแนะนำในการดูบทช่วยสอน ตัวอย่าง ฯลฯ เลือก Workbench แล้วคุณจะเข้าสู่หน้าต่าง สภาพแวดล้อมในการทำงาน (Workbench) ซึ่งงานต่อไปของคุณจะเกิดขึ้น
ส่วนประกอบหลักของเวิร์กสเปซคือมุมมอง เอดิเตอร์ และเปอร์สเปคทีฟ
วัฏจักรนี้ค่อนข้างแปลกเนื่องจากใช้คุณลักษณะทั้งหมดของตนในสถานะและดำเนินการตามนั้น โดยการประกาศตัวแปรก่อนการวนรอบ การเริ่มต้นตัวแปรนี้ การเพิ่มค่าในลูป สิ่งนี้ให้รูปต่อไปนี้
คุณอาจสังเกตเห็นการมีอยู่; ในสภาพที่แยกทุ่งนา อย่าลืมพวกเขา มิฉะนั้น โปรแกรมจะไม่คอมไพล์
นอกจากนี้เรายังสามารถเปลี่ยนค่าของการวนซ้ำ นั่นคือ แทนที่จะเริ่มจาก 0 ถึง 10 เราจะเริ่มจาก 10 จนถึง 0 จะได้ตัวเลขต่อไปนี้
เรามีหมายเลขเริ่มต้น เงื่อนไขที่ต้องปฏิบัติตามเพื่อดำเนินการวนซ้ำอีกครั้ง และคำสั่ง โปรดทราบว่าไม่มีสิ่งใดป้องกันไม่ให้เรารวบรวมการประกาศ เงื่อนไข และคำแนะนำจากจุดสิ้นสุดของลูป ลูปช่วยให้คุณทำงานซ้ำๆ ได้ ... เช่นเดียวกับเงื่อนไข หากลูปมีโค้ดมากกว่าหนึ่งบรรทัดเพื่อดำเนินการ คุณต้องล้อมรอบด้วยวงเล็บปีกกาเพื่อกำหนดจุดเริ่มต้นและจุดสิ้นสุดของลูปอย่างชัดเจน
ประสิทธิภาพเป็นส่วนเล็กๆ ภายในเวิร์กสเปซที่ใช้ในการนำทางผ่านหมวดหมู่ของอ็อบเจ็กต์ (เช่น ทรัพยากรหรือแพ็คเกจ) ตัวแก้ไขที่เปิดอยู่ และคุณสมบัติการแสดงของเอดิเตอร์ที่ใช้งานอยู่ ตัวอย่างเช่น มุมมองเนวิเกเตอร์จะแสดงโปรเจ็กต์และทรัพยากรอื่นๆ ในขณะที่มุมมองบุ๊กมาร์กจะแสดงบุ๊กมาร์กทั้งหมดใน Workbench พร้อมกับชื่อไฟล์ที่บุ๊กมาร์กเหล่านั้นเชื่อมโยงกัน รูปภาพแสดงมุมขวาบนของพื้นที่ทำงานโดยที่มุมมองเค้าร่างทำงานอยู่
ข้อผิดพลาด: คุณสามารถวัดขนาดของอ็อบเจ็กต์โดยทำให้เป็นลำดับเป็นสตรีมไบต์และดูความยาวผลลัพธ์ของสตรีม สาเหตุที่วิธีนี้ใช้ไม่ได้ผลเนื่องจากเลย์เอาต์การทำให้เป็นอนุกรมเป็นเพียงภาพสะท้อนจากระยะไกลของเลย์เอาต์ที่แท้จริงในหน่วยความจำ
อย่างไรก็ตาม ในช่วงเริ่มต้นของทุกสิ่ง เราต้องถามตัวเองด้วยคำถามพื้นฐาน เป้าหมายคืออะไร? ภาษานี้เน้นที่เป็นหลัก ภายใต้รหัสผ่านนี้ รหัสถาวรจะถูกย่อให้เล็กสุด สิ่งเหล่านี้เป็นสมาชิกคลาสโดยธรรมชาติที่ไม่ดึงโค้ดมากเกินไป แต่เป็น ท้ายที่สุดก็สามารถใช้ได้ทั่วไป ตัวอย่างของเครื่องมือดังกล่าวคือลอมบอก คอมไพเลอร์ที่เหลือจะทำงานในระหว่างขั้นตอนการสร้าง bytecode อย่างไรก็ตาม เนื่องจากในทางปฏิบัติไม่มีสิ่งใดที่สมบูรณ์แบบ ลอมบอกก็เช่นกัน ก้าวต่อไปในแนวคิดของภาษา เรามาถึงฝันร้ายของโปรแกรมเมอร์ที่เรียกว่า
การเปลี่ยนแปลงใดๆ ที่เกิดขึ้นกับมุมมองจะถูกบันทึกทันที
ส่วนประกอบภาพ Workbench อีกประเภทหนึ่ง - บรรณาธิการซึ่งใช้ในการดูและแก้ไขทรัพยากรบางอย่าง (เช่น รหัสโปรแกรม) เมื่อคุณเลือกทรัพยากร ตัวแก้ไขที่เหมาะสมจะปรากฏขึ้น ตัวอย่างเช่น เปิดเอกสารข้อความใดๆ (ที่มีนามสกุล .txt) โดยใช้คำสั่ง File -> Open File ... แล้วคุณจะเห็นโปรแกรมแก้ไขข้อความธรรมดาในตัว หากคุณพิมพ์บางอย่างในตัวแก้ไขนี้ เครื่องหมายดอกจันจะปรากฏบนแท็บที่มีการเขียนชื่อไฟล์ หมายความว่าตัวแก้ไขมีการเปลี่ยนแปลงที่ยังไม่ได้บันทึก พวกเขาจะถูกบันทึกไว้หากคุณกด Ctrl + S หรือเลือกคำสั่งไฟล์ -> บันทึก
ในความเป็นจริง Javan จะพูดว่า "เรามีทางเลือก" ไม่จำเป็นต้องเป็นมิตรกว่าการตรวจสอบค่า null ทุกครั้ง แต่ความยาวของบรรทัดเพิ่มขึ้นอย่างรวดเร็ว ซึ่งน่าเสียดายที่ลดความสามารถในการอ่านโค้ด ความทนทานและการทำงานร่วมกัน ... มีผู้เชี่ยวชาญด้านการตลาดมากมาย มาดูข้อเสียและวิธีการใช้งานจริงกันดีกว่า
ไวยากรณ์ใหม่ทำให้เกิดความรู้สึกที่หลากหลาย เมื่อดูรหัสเป็นครั้งแรกในสระ ฉันรู้สึกอึดอัดเล็กน้อย ไวยากรณ์ซึ่งในตอนแรกอย่างน้อยก็เป็นการเตือนความจำที่แปลกประหลาดของการย้อนรอยเล็กน้อย ในกรณีของการประกาศ สามารถอ่านวิธีการได้อย่างชัดเจน ปัญหาเกิดขึ้นเมื่อเราใช้สิ่งที่เรียกว่า ไม่สามารถซ่อนได้ว่าความสามารถในการจัดการกับข้อยกเว้นที่ตรวจสอบแล้วนั้นไม่สามารถควบคุมได้เช่นเดียวกัน ซึ่งช่วยปรับปรุงความสามารถในการอ่านโค้ดได้อย่างมาก
มีมุมมองที่เป็นประโยชน์มากมายที่คุณสามารถเพิ่มลงในหน้าต่างพื้นที่ทำงานด้วยคำสั่ง Window -> Show View อย่างไรก็ตาม แทนที่จะเพิ่มทีละรายการ จะสะดวกกว่าในการเปลี่ยนมุมมอง การฉายภาพ(หรือ ทัศนคติ) คือชุดของมุมมองและบรรณาธิการที่ได้รับการปรับแต่งเป็นพิเศษเพื่อให้งานสำเร็จลุล่วง หลังจากเรียกใช้งานใน Eclipse มุมมอง Java จะเปิดขึ้น ซึ่งกำหนดค่าไว้สำหรับการเขียนโปรแกรมจริง การฉายภาพดีบักมักใช้เพื่อดีบักโปรแกรม คุณสามารถเปลี่ยนการฉายภาพโดยใช้คำสั่ง Window -> Open Perspective ชื่อของโปรเจ็กต์ปัจจุบันจะแสดงที่มุมขวาบนของสภาพแวดล้อมการทำงาน (ดูรูป)
คลาสที่ประกาศรวมถึงตัวแปรเริ่มต้นเป็นแบบสาธารณะและสุดท้าย ปัญหาการมองเห็นสามารถแทนที่ได้โดยตัวแก้ไขที่เหมาะสมในขณะที่ตัวแก้ไขสุดท้ายเปิดอยู่พร้อมกับตัวแก้ไข คำสั่งแบบมีเงื่อนไขคือโครงการที่ให้คุณระบุเงื่อนไขสำหรับการดำเนินการของโค้ดเฉพาะ - โค้ดที่คุณต้องการเรียกใช้ก็ต่อเมื่อตรงตามเงื่อนไขบางประการเท่านั้น แบบฟอร์มทั่วไปคำสั่งแบบมีเงื่อนไขมีลักษณะดังนี้
นิพจน์เงื่อนไขยังอนุญาตให้คุณระบุโค้ดสำรอง กล่าวคือ โค้ดที่จะดำเนินการเมื่อเงื่อนไขไม่เป็นความจริง ตัวอย่างเช่น สำหรับ ของเรื่องนี้วิธีการต่อไปนี้จะแสดงขึ้น ไม่ว่าจะเป็นจำนวนบวกก็ตาม โปรดทราบว่าผลลัพธ์เดียวกันนี้สามารถทำได้โดยการใช้วิธีการข้างต้นในวิธีที่ต่างไปจากเดิมอย่างสิ้นเชิง เช่น
โปรแกรม Java ตัวแรก
ก่อนที่คุณจะเริ่มเขียนโปรแกรม คุณต้องสร้างโครงการที่ Eclipse จะจัดเก็บทรัพยากรทั้งหมดที่เกี่ยวข้องกับโปรแกรมของคุณ
ในการสร้างโครงการ ให้รันคำสั่ง File -> New -> Project ในหน้าต่างที่ปรากฏขึ้น ให้เลือก Java Project แล้วคลิก Next ระบุชื่อสำหรับโครงการของคุณ โปรดทราบว่าโฟลเดอร์ที่มีชื่อโครงการของคุณจะถูกสร้างขึ้นในไดเร็กทอรีที่คุณระบุเป็นพื้นที่ทำงาน (เว้นแต่คุณจะเปลี่ยนการตั้งค่าในหน้าต่างนี้ ซึ่งเราจะไม่ทำในครั้งแรก) คลิกปุ่มเสร็จสิ้น
โดยธรรมชาติรูปแบบแรก ไม่เพียงแต่จะกระชับในการเขียนเท่านั้น แต่ยังอาจเร็วกว่าด้วยเนื่องจากมีการเปรียบเทียบน้อยกว่าโดยเฉลี่ย ในกรณีนี้ เราสามารถละเว้นวงเล็บปีกกาที่มีโค้ดแบบมีเงื่อนไขได้ จากการบรรยายนี้ เราเริ่มศึกษาการเขียนโปรแกรมเชิงวัตถุโดยใช้ตัวอย่างภาษาโปรแกรมเฉพาะ คุณสมบัติทั้งหมดเหล่านี้แสดงให้เห็นถึงการเลือกภาษาเป็นเครื่องมือในการสาธิตกลไกเชิงวัตถุ อย่างไรก็ตาม ควรเน้นว่านี่ไม่ใช่ทางเลือกเดียว
มีความเป็นไปได้มากมาย ผู้สร้างการบรรยายแต่ละครั้งต้องตัดสินใจเลือก เป็นสิ่งสำคัญสำหรับอาจารย์ที่ไม่ควรมองข้ามข้อเท็จจริงพื้นฐาน: ภาษาโปรแกรมที่เลือกเป็นเพียงเครื่องมือสำหรับแสดงตัวอย่างการเขียนโปรแกรมเชิงวัตถุ การเลือกภาษาในขณะที่จำเป็นเป็นเรื่องรอง สิ่งนี้เกี่ยวข้องกับคำจำกัดความของภาษาและคำอธิบายของไลบรารีมาตรฐาน แน่นอน เราจะไม่พูดถึงพวกเขาทั้งหมดในบริบทของการบรรยาย แต่เราจะศึกษาตัวอย่างลำดับชั้นที่ซับซ้อนและซับซ้อน
โปรเจ็กต์ของคุณแสดงอยู่ในมุมมอง PackageExplorer ทางด้านซ้ายของเวิร์กสเปซ คุณสามารถลบได้ตลอดเวลาโดยคลิกที่ชื่อ คลิกขวาเมาส์และเลือกลบ หลังจากนั้น Eclipse จะถามว่าจะทำลายโฟลเดอร์ที่มีไฟล์โปรเจ็กต์พร้อมกันหรือไม่ (ถ้าจำเป็น คุณยังสามารถทำลายมันได้)
หากคุณยังไม่ได้ลบโปรเจ็กต์ คุณสามารถเพิ่มไฟล์และโฟลเดอร์ลงในโปรเจ็กต์ได้โดยใช้คำสั่งเมนูบริบท ใหม่ -> ไฟล์และใหม่ -> โฟลเดอร์ตามลำดับ หากโปรเจ็กต์มีขนาดใหญ่ ก็ต้องมีโครงสร้างโฟลเดอร์ที่ซ้อนกัน แต่ในกรณีของโปรเจ็กต์ Java สิ่งต่าง ๆ แตกต่างกันเล็กน้อย ประเด็นคือแฟรกเมนต์ของโปรแกรม Java ถูกจัดกลุ่มเป็น แพ็คเกจและสร้างโฟลเดอร์แยกต่างหากสำหรับแต่ละแพ็คเกจ แพ็คเกจถูกสร้างขึ้นโดยคำสั่ง New -> Package คุณต้องคิดชื่อแพ็คเกจด้วย ด้วยเหตุนี้ โฟลเดอร์ใหม่ที่มีชื่อนี้จะถูกสร้างขึ้นในโฟลเดอร์โครงการ คุณสามารถตรวจสอบ
เพื่อสร้างกราฟิก อินเทอร์เฟซผู้ใช้เราจะยกตัวอย่างคอลเลกชันและสตรีมและชั้นเรียน หลังจากคำอธิบายเหล่านี้ก็ถึงเวลาเริ่มต้น! สมมติฐานการออกแบบอื่นๆ เกี่ยวกับการพกพาของโปรแกรม ผลจะเหมือนกัน ในภาษาเชิงวัตถุ ฟังก์ชันที่กำหนดไว้ในคลาสเรียกว่าเมธอด คำจำกัดความของคลาสเริ่มต้นด้วยคำของคลาส นำหน้าด้วยตัวแก้ไขการเข้าถึงเพิ่มเติม เราจะไปเกี่ยวกับแพ็คเกจ ชื่อเมธอดนี้ไม่ใช่แบบสุ่ม พารามิเตอร์เมธอดนั้นแข็งแกร่งมากในภาษาการเขียนโปรแกรมส่วนใหญ่
คุณอาจพบว่าการเรียกดูทรัพยากรของโครงการง่ายขึ้นโดยใช้มุมมองเนวิเกเตอร์ เปิดด้วยคำสั่ง Window -> Show View คุณจะเห็นว่านอกเหนือจากไดเร็กทอรีโปรเจ็กต์และแพ็กเกจแล้ว Eclipse ได้สร้างไฟล์เสริมสองไฟล์ .classpath และ .project สามารถเปิดได้ง่ายในเครื่องมือแก้ไข แต่ตอนนี้ไม่ได้สนใจเราเป็นพิเศษ
โปรแกรม Java ประกอบด้วยอย่างน้อยหนึ่งรายการเสมอ ชั้นเรียน... คุณสามารถสร้างคลาสโดยใช้คำสั่ง New -> Class ใน เมนูบริบทมุมมองเนวิเกเตอร์ (หรือ Package Explorer ไม่สำคัญ) เมื่อสร้างคลาส คุณต้องเลือกแพ็คเกจที่จะใช้ (เลือกแพ็คเกจที่คุณเพิ่งสร้างขึ้น) และตั้งชื่อให้คลาสนั้น เป็นเรื่องปกติที่จะเริ่มต้นชื่อคลาสด้วยอักษรตัวพิมพ์ใหญ่ หากคุณไม่ปฏิบัติตามกฎเกณฑ์ที่ดีนี้ Eclipse จะออกคำเตือน แต่จะไม่มีอะไรเลวร้ายเกิดขึ้น
ลำดับของการประกาศพารามิเตอร์แต่ละรายการจะได้รับ และการประกาศแต่ละรายการจะถูกคั่นด้วยตัวคั่น การประกาศแต่ละครั้งจะระบุชื่อและประเภทของพารามิเตอร์ มีการระบุตัวระบุเพิ่มเติมไว้ด้านหน้าประเภทเมธอด คำหลักแบบคงที่หมายความว่าเป็นวิธีการเรียนเช่น การเรียกที่ไม่ต้องการสำเนาของวัตถุของคลาสนี้ ดังที่ได้กล่าวไว้ก่อนหน้านี้ คลาสสอดคล้องกับประเภทและค่าของคลาส - อินสแตนซ์ของประเภทนั้นเป็นวัตถุ เรามักจะเรียกใช้เมธอดบนอ็อบเจ็กต์ แต่คุณสามารถเรียกใช้เมธอดในคลาสได้
นี่เป็นสิ่งสำคัญอย่างยิ่งในโปรแกรมของเรา โดยที่เรายังไม่ได้สร้างวัตถุใดๆ คลาสนี้รวบรวมการดำเนินการพื้นฐานและอ็อบเจ็กต์ที่เกี่ยวข้องกับอินพุตและเอาต์พุตมาตรฐาน และระบบปฏิบัติการที่โปรแกรมทำงาน โดยที่ component สามารถเป็นแอตทริบิวต์หรือวิธีการได้ ในกรณีหลังนี้ เราได้จัดเตรียมรายการพารามิเตอร์ไว้ในวงเล็บ แน่นอน เราสามารถอ้างอิงเพิ่มเติมถึงคุณลักษณะของแอตทริบิวต์หรือผลของวิธีการได้ด้วยการเขียน เป็นต้น
เพื่อจุดประสงค์ของเรา ให้เลือกช่องทำเครื่องหมายใต้ "คุณต้องการสร้างวิธีการใดในชั้นเรียนของคุณ" ทางเลือกตรงข้าม โมฆะคงที่สาธารณะหลัก (สตริง args)... เป็นผลให้เมธอด main () (ฟังก์ชัน) จะถูกสร้างขึ้นในเนื้อหาของคลาส Java ต้องการให้อย่างน้อยหนึ่งคลาสของโปรแกรมมีเมธอดที่มีส่วนหัวดังกล่าว เป็นผู้ที่จะถูกประหารชีวิตเมื่อเริ่มโปรแกรม
ไวยากรณ์เดียวกันนี้ใช้เมื่ออธิบายคุณลักษณะและเมธอดของคลาส ความคิดเห็นหนึ่งบรรทัดเริ่มต้นด้วยเครื่องหมายทับสองอันและสิ้นสุดที่ท้ายบรรทัด แน่นอน ความคิดเห็นแบบหลายบรรทัดสามารถใส่ได้ทั้งหมดในบรรทัดเดียว และอาจมีความคิดเห็นดังกล่าวหลายบรรทัดในบรรทัดเดียว
ไม่สามารถซ้อนความคิดเห็นแบบหลายบรรทัดได้ เราจะไม่ลงรายละเอียดที่นี่ การส่งผู้อ่านที่สนใจมากขึ้นไปยังรายงานภาษา เรามาสรุปองค์ประกอบคำศัพท์ที่สำคัญที่สุดกันเถอะ คำถามเกี่ยวกับความถูกต้องของการใช้ตัวระบุที่เขียนด้วยตัวอักษรประจำชาติคือ ไม่ใช่ภาษาอังกฤษทำให้เกิดการโต้เถียงกันมาก ผู้เขียนบทความนี้ ประเมินข้อโต้แย้งอื่น ๆ ที่เกี่ยวข้อง เช่น การทำงานในทีมต่างประเทศ แสดงความยินดีกับความจริงที่ว่า การแก้ปัญหาในภาษาชวา ปัญหาหมาป่า แพะ และกะหล่ำปลี เรียกว่าเรือแปรผันแทน เรือหรือเรือ
จากการกระทำของเรา ไฟล์ที่มีชื่อคลาสของเราและนามสกุล .java จะถูกสร้างขึ้นในโฟลเดอร์แพ็คเกจ Eclipse จะเปิดโปรแกรมแก้ไขโค้ดที่แสดงเนื้อหาของไฟล์นี้ มันจะเป็นดังนี้ (แน่นอนว่าชื่อแพ็คเกจและคลาสอาจแตกต่างกัน):
แพ็คเกจ mainPack; คลาสสาธารณะ MyClass (/ ** * @param args * / public static void main (String args) ())คำสั่งที่ประกอบเป็นเนื้อความของฟังก์ชันสามารถเขียนแทนการแสดงความคิดเห็นที่สร้างขึ้นโดยอัตโนมัติได้ // TODO stub วิธีสร้างอัตโนมัติ... เราจะเขียนเพียงคำสั่งเดียวที่จะพิมพ์ "สวัสดีชาวโลก!" แบบคลาสสิกไปที่หน้าจอ:
ซึ่งหมายความว่าทุกตัวแปร คุณลักษณะ หรือพารามิเตอร์มีประเภทที่ประกาศไว้ คอมไพเลอร์ระบุประเภทของนิพจน์ทั้งหมดในโปรแกรมและตรวจสอบว่าตัวดำเนินการและวิธีการทั้งหมดถูกใช้ตามการประกาศนั่นคืออาร์กิวเมนต์ของประเภทที่เหมาะสม ประเภทหลัก ประเภทอ้างอิง ... ประเภทหลักคือกลุ่มของแปดประเภทที่มีค่าอย่างง่าย
ประเภทของลิงค์จัดอยู่ในหมวดหมู่ต่อไปนี้ ประเภทของคลาส ประเภทของอินเตอร์เฟส ประเภทของอาร์เรย์ ... ประเภทการอ้างอิงคือการอ้างอิงอ็อบเจ็กต์หรือค่า null เนื่องจากไม่มีชื่อ คุณจึงไม่สามารถประกาศตัวแปรประเภทนี้ได้ ค่านี้สามารถกำหนดให้กับประเภทการอ้างอิงใดก็ได้ ดังนั้นคุณจึงคิดว่าค่า Null เป็นค่าสำหรับการอ้างอิงแต่ละประเภทและไม่ต้องกังวลกับการมีอยู่ของประเภท ตัวแปรเรียกว่าคอนเทนเนอร์สำหรับค่าเดียวของประเภทที่มีการประกาศ
System.out.println ("สวัสดีชาวโลก!");
มันยังคงรันโปรแกรม ในการดำเนินการนี้ ให้รันคำสั่ง Run -> Run และรับกล่องโต้ตอบที่มีการตั้งค่าการเรียกใช้ที่ไม่สำคัญ ที่ด้านซ้ายของหน้าต่างนี้ ให้เลือก Java Application ( แอปพลิเคชัน Java). หลังจากครุ่นคิดเล็กน้อย Eclipse จะพบคลาสของเราที่มีเมธอด main () และเสนอให้เริ่มโปรแกรมจากมัน (ทางด้านขวาของหน้าต่าง บนแท็บ Main ชื่อของโปรเจ็กต์และคลาสของเราควรปรากฏขึ้น) นอกจากนี้ยังมีการเสนอแท็บเพิ่มเติมอีกสองสามแท็บเพื่อให้ความสนใจของโปรแกรมเมอร์ ตัวอย่างเช่นในข้อที่สอง - อาร์กิวเมนต์ - เสนอให้ป้อนพารามิเตอร์ บรรทัดคำสั่ง(หากโปรแกรมถูกออกแบบให้เรียกใช้จากบรรทัดคำสั่งพร้อมพารามิเตอร์) สำหรับโปรแกรมอย่างง่ายของเรา คุณไม่จำเป็นต้องระบุอย่างอื่น เพียงคลิกปุ่มเรียกใช้
ตัวแปรมีเจ็ดประเภท ตัวแปรคลาส ตัวแปรคัดลอก ตัวแปรโลคัล อิลิเมนต์อาร์เรย์ พารามิเตอร์เมธอด พารามิเตอร์คอนสตรัคเตอร์ พารามิเตอร์การจัดการข้อยกเว้น ต้องประกาศตัวแปรแต่ละตัว ตัวแปรแต่ละตัวสัมพันธ์กับประเภทที่ประกาศในการประกาศตัวแปร คอมไพเลอร์ใช้ประเภทนี้เพื่อตรวจสอบการดำเนินการกับตัวแปร หากคอมไพเลอร์ตรวจพบว่าโปรแกรมกำลังใช้ตัวแปรที่ไม่ตรงกับประเภทของมัน โปรแกรมจะถูกปฏิเสธว่าไม่ถูกต้อง
ด้วยเหตุนี้ ข้อผิดพลาดมากมายในโปรแกรมจึงถูกตรวจพบในขั้นตอนการรวบรวม แน่นอนว่าคอมไพเลอร์ไม่สามารถตรวจพบข้อผิดพลาดเชิงตรรกะได้ สำหรับพารามิเตอร์ การรักษาข้อกำหนดนี้จะชัดเจน สำหรับตัวแปรสี่ประเภทอื่น ๆ สิ่งนี้ยากกว่า
จากการทำงานของโปรแกรม ข้อมูลจะถูกส่งออกไปยังคอนโซลที่เรียกว่า วี ระบบปฏิบัติการคอนโซล MS DOS เป็นหน้าจอมอนิเตอร์ทั้งหมด Eclipse เปิดมุมมอง Console ให้เรา ซึ่ง (หากทุกอย่างถูกต้อง) บรรทัด "สวัสดีชาวโลก!" คือผลลัพธ์ของโปรแกรมของเรา
ตอนนี้ ในการรันโปรแกรมอีกครั้ง (เช่น หากเราตัดสินใจที่จะทำการเปลี่ยนแปลงบางอย่างกับมันหรือต้องการแสดงให้ครูเห็น) คุณสามารถไปที่วิธีที่ง่ายกว่า - รันคำสั่ง Run -> Run Last Launched (เรียกใช้ แอปพลิเคชันก่อนหน้าอีกครั้ง) หรือเพียงแค่กด Ctrl + F11
พื้นฐานไวยากรณ์ Java
คำจำกัดความ
ตัวถูกดำเนินการคือค่าที่เกี่ยวข้องกับการดำเนินการ
เมธอด (ฟังก์ชัน) เป็นส่วนหนึ่งของโปรแกรมที่มีชื่อเป็นของตัวเอง ชื่อนี้สามารถใช้เป็นคำสั่งในโปรแกรมได้ (คำสั่งดังกล่าวเรียกว่าการเรียกเมธอด) เมื่อมีการเรียกเมธอด คำสั่งที่ประกอบด้วยจะถูกดำเนินการ วิธีการ คล้ายกับการดำเนินการ สามารถคืนค่าผลลัพธ์ได้
นิพจน์คือลำดับของการดำเนินการและการเรียกใช้เมธอดที่ดำเนินการในลำดับที่แน่นอน (ตามลำดับความสำคัญของการดำเนินการ โดยคำนึงถึงวงเล็บในบัญชี) ซึ่งให้ค่าบางอย่างระหว่างการคำนวณ
ตัวแปรคือชื่อพื้นที่ของหน่วยความจำคอมพิวเตอร์ซึ่งโปรแกรมสามารถจัดเก็บข้อมูลบางประเภทได้ (เรียกว่า ค่าตัวแปร) และเข้าถึงข้อมูลนี้โดยใช้ชื่อตัวแปร
แนวคิดของโปรแกรมและอัลกอริทึม (ซ้ำ)
นัดใด้ โปรแกรมคอมพิวเตอร์- การแปลงข้อมูลอินพุตเป็นข้อมูลเอาต์พุต อัลกอริธึมของโปรแกรมกำหนดวิธีการแปลงข้อมูลอินพุตเป็นข้อมูลเอาต์พุต
ข้อมูลที่ป้อนอาจมาจากแหล่งต่างๆ ในโครงการการศึกษา ข้อมูลเหล่านี้มักถูกป้อนในขณะที่โปรแกรมกำลังทำงานโดยใช้แป้นพิมพ์และเมาส์ ในโปรแกรมจริง สามารถรับได้จากไฟล์ ฐานข้อมูล เครือข่าย โดยตรงจากเซ็นเซอร์ต่างๆ เป็นต้น
ข้อมูลเอาต์พุต (ผลงานของโปรแกรม) มักแสดงบนหน้าจอ แต่สามารถบันทึกลงในไฟล์หรือฐานข้อมูลที่ส่งไปยังเครือข่ายได้ โปรแกรมที่ฝังตัวจะสร้าง Escape Sequence พิเศษเป็นเอาต์พุตที่ทำให้อุปกรณ์ที่โปรแกรมเชื่อมโยงอยู่ดำเนินการบางอย่าง
การเริ่มต้นเขียนโปรแกรมต้องเข้าใจทันที:
- โปรแกรมนี้ใช้ทำอะไร (โดยทั่วไปแล้วใช้ทำอะไร)?
- โปรแกรมนี้มีข้อมูลอินพุตอะไรบ้าง (และมาจากไหน)
- ผลลัพธ์ของโปรแกรมนี้คืออะไร (และจะส่งไปที่ใด)
- อินพุตควรแปลงเป็นเอาต์พุต (อัลกอริทึม) อย่างไร นี่เป็นส่วนที่ยากที่สุดในความคิดของโปรแกรมเมอร์ แต่ถึงแม้จะไม่มีคำตอบสำหรับคำถามสามข้อก่อนหน้านี้ แต่ก็ไม่มีเหตุผลที่จะเริ่ม
เมื่อเขียนโปรแกรมอย่างง่าย คุณต้อง:
- รับข้อมูลเข้า
- ใช้อัลกอริธึมสำหรับแปลงข้อมูลอินพุตเป็นเอาต์พุต
- เอาท์พุตผลงานของโปรแกรม (ข้อมูลเอาท์พุต): แสดงผล ส่งผ่านเครือข่าย ฯลฯ
เมื่อทำงานกับโครงการซอฟต์แวร์ที่ซับซ้อน จำเป็นต้องทำการวิเคราะห์โดยละเอียดเกี่ยวกับข้อกำหนดสำหรับโปรแกรม (ซึ่งอาจต้องใช้การสื่อสารกับลูกค้าเป็นจำนวนมาก) เพื่อดำเนินการออกแบบ (เพื่อกำหนดว่าโปรแกรมจะประกอบด้วยส่วนใด ว่าส่วนต่างๆ เหล่านี้จะโต้ตอบกันอย่างไร แสดงแง่มุมต่างๆ ของโครงสร้างและพฤติกรรมของโปรแกรมในรูปแบบของไดอะแกรม ฯลฯ) แต่ในกรณีใด ๆ ให้เริ่มเขียนโปรแกรมโดยไม่เข้าใจข้อมูลอินพุตและเอาต์พุตและไม่เข้าใจสาระสำคัญของอัลกอริธึมในแง่ทั่วไป ไร้สาระ... และคิดอย่างน้อยในแง่ทั่วไปของแก่นแท้ของอัลกอริทึมโดยไม่รู้ข้อมูลอินพุตและเอาต์พุต เป็นไปไม่ได้.
ดังนั้นให้เริ่มการออกกำลังกายของคุณโดยกำหนดอินพุตและเอาต์พุตเสมอ หากคุณมีปัญหาใด ๆ ในเรื่องนี้ โปรดติดต่อครูของคุณ
วรรณกรรมในหัวข้อ:
การสร้างอัลกอริทึมพื้นฐาน (การทำซ้ำ)
ความสนใจ! ในขั้นตอนนี้ของการฝึกอบรม คุณควรมีความรู้ในหัวข้อนี้อยู่แล้วหากไม่มีและวัสดุสำหรับการทำซ้ำนั้นเข้าใจยากหรือไม่เพียงพอ คุณจะไม่รับมือกับงาน! เป็นเรื่องเร่งด่วนที่จะปรึกษาวรรณกรรมในหัวข้อนี้
ดังนั้น อัลกอริทึมคือลำดับของการกระทำเพื่อแปลงข้อมูลอินพุตเป็นข้อมูลเอาต์พุต
อัลกอริทึมสามารถเขียนได้สามวิธีหลัก:
ขั้นตอนแต่ละขั้นตอนของอัลกอริธึม (ไม่ว่าจะเขียนอย่างไร) เชื่อมโยงถึงกันโดยใช้โครงสร้างมาตรฐานสามแบบที่นำไปใช้ในภาษาโปรแกรมทั้งหมด:
การดำเนินการตามลำดับ ขั้นตอนจะดำเนินการทีละรายการ
การแตกแขนง. ขึ้นอยู่กับการปฏิบัติตามเงื่อนไขบางอย่าง (ในตัวอย่างที่พิจารณา มันคือ x> y?) ดำเนินการหนึ่งหรืออีกสาขาหนึ่งของโปรแกรม
รอบ ลำดับขั้นตอนของโปรแกรมดำเนินการหลายครั้ง อันที่จริง การวนซ้ำนั้นอิงจากการแตกแขนง (มีการตรวจสอบเงื่อนไขสำหรับการออกจากลูป) แต่ถ้าไม่ตรงตามเงื่อนไขนี้ การควบคุมจะถูกโอนไปยังจุดเริ่มต้นของลูป (กลับไปที่ขั้นตอนที่เสร็จสิ้นแล้ว)
พิจารณาปัญหา: แสดงเลขคู่ทั้งหมดที่น้อยกว่า 10 สำหรับปัญหานี้ คุณสามารถใช้อัลกอริทึมตามขั้นตอนตามลำดับและอัลกอริทึมที่ใช้การวนซ้ำ ไดอะแกรมสำหรับทั้งสองตัวเลือกจะแสดงในรูป:
แผนภาพแรกดูชัดเจนขึ้น แต่ในกรณีที่ไม่จำเป็นต้องแสดงตัวเลข 5 ตัว แต่เป็น 100 แผนภาพ (และโปรแกรมที่สอดคล้องกับอัลกอริธึมนี้) จะเพิ่มขึ้น 20 เท่า และในโปรแกรมที่ตรงกับอัลกอริธึมที่สองเท่านั้น ที่เดียวจะเปลี่ยน: 10 จะเปลี่ยนเป็น 100 นั่นคือเหตุผลที่การกระทำซ้ำ ๆ ได้รับการออกแบบในรูปแบบของวัฏจักรแม้ว่าในหลาย ๆ กรณีสามารถจ่ายได้
ข้อควรจำ: อัลกอริทึมควรสร้างจากโครงสร้างที่มีชื่อเพียงสามชื่อเท่านั้น!
วรรณกรรมในหัวข้อ:
1. หนังสือเรียนวิชาวิทยาการคอมพิวเตอร์
พื้นฐานของพื้นฐานไวยากรณ์ Java
- ภาษา Java แยกความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็กซึ่งหมายความว่าควรเขียนชื่อของฟังก์ชันและคำหลักทั้งหมดตามที่ปรากฏในตัวอย่างและหนังสืออ้างอิง
- ทุกคำสั่ง (ตัวดำเนินการ) ในภาษา Java ต้องลงท้ายด้วยเครื่องหมายอัฒภาค
- โปรแกรม Java ประกอบด้วยอย่างน้อยหนึ่งโปรแกรม ชั้นเรียน... ควรวางส่วนการทำงานทั้งหมดของโปรแกรม (เช่น ทำหน้าที่อะไร) ลงใน วิธีการบางชั้นเรียน (คลาสและเมธอดเป็นแนวคิดการเขียนโปรแกรมเชิงวัตถุจะกล่าวถึงในบทที่ 3 ไวยากรณ์ของคลาสจะครอบคลุมด้วย ในแบบฝึกหัดแรก ให้ใช้คลาสที่ Eclipse สร้างโดยค่าเริ่มต้น)
- ชั้นเรียนถูกจัดกลุ่มเป็นแพ็คเกจ
- อย่างน้อยหนึ่งคลาสต้องมีเมธอด main () เหมือนกับในตัวอย่างที่เราพิจารณา (ในตอนแรก ไม่จำเป็นต้องเข้าใจหรือพยายามจำการสะกดที่ถูกต้องของวิธีนี้ - Eclipse จะสร้างทุกอย่างเองหากคุณทำเครื่องหมายในช่องที่จำเป็น) วิธีนี้จะถูกดำเนินการก่อน
ในกรณีที่ง่ายที่สุด โปรแกรมสามารถประกอบด้วยหนึ่งแพ็คเกจ (หรือไม่มีเลย) หนึ่งคลาสภายในแพ็คเกจ และเมธอด main () เดียวภายในคลาส คำสั่งโปรแกรมจะถูกเขียนระหว่างบรรทัด
โมฆะคงที่สาธารณะหลัก (สตริง args) (และวงเล็บปีกกาปิด) แสดงจุดสิ้นสุดของเนื้อหาวิธีการ ควรปฏิบัติตามแนวทางนี้เมื่อทำแบบฝึกหัดที่ง่ายที่สุด
ความคิดเห็น (1)
ความคิดเห็นเป็นป้ายกำกับอธิบายที่โปรแกรมเมอร์ใช้เพื่อปรับปรุงความเข้าใจโค้ด เมื่อรวบรวมโปรแกรม ความคิดเห็นจะถูกละเว้น ดังนั้นจึงสามารถเขียนอะไรก็ได้ สิ่งสำคัญคือการแสดงว่าคำจารึกนี้เป็นคำอธิบายและไม่ควรตีความว่าเป็นคำสั่งของโปรแกรม ใน Java ทำได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
- เครื่องหมายทับสองอัน // ถูกแทรก จากนี้ไปจนจบบรรทัด คุณสามารถเขียนอะไรก็ได้ที่คุณต้องการ - Java จะถือว่ามันเป็นความคิดเห็น
- ที่จุดเริ่มต้นของความคิดเห็น อักขระ / * จะถูกวาง และในตอนท้าย - * / ในกรณีนี้ ความคิดเห็นสามารถขยายได้หลายบรรทัด
- ไฮไลท์ ความคิดเห็นสำหรับเอกสารที่อยู่ระหว่างเครื่องหมาย / ** และ * / การใช้งานของพวกเขาจะกล่าวถึงในภายหลัง
กฎการเขียนตามตัวอักษร
เกี่ยวกับรูปแบบการเขียนต่างๆ
จำนวนเต็ม (ตัวอักษรจำนวนเต็ม) ใน Java สามารถเขียนได้ตามปกติในรูปแบบทศนิยม: 12345, +4, -11
นอกจากนี้ คุณสามารถเขียนจำนวนเต็มในรูปแบบฐานแปด โดยเริ่มจากศูนย์ (0777, -056) และในรูปแบบเลขฐานสิบหก โดยเริ่มจากศูนย์และอักษรละติน x (0xFFFF, 0x14, 0xA1BC)
ตัวอักษรที่ถูกต้องเขียนด้วยเครื่องหมายทศนิยม ส่วนจำนวนเต็มแยกออกจากจุดทศนิยม
สามารถเขียนจำนวนจริงได้ จุดลอยตัวตัวอย่างเช่น: 5.4e19, 17E-11, -123e + 4 ส่วนของตัวเลขที่อยู่ก่อนตัวอักษร e เรียกว่า mantissa และส่วนที่อยู่หลังตัวอักษร e เรียกว่า order สัญกรณ์หมายถึงสิ่งต่อไปนี้: คุณต้องเพิ่ม 10 ยกกำลังของคำสั่งและคูณด้วย mantissa บางครั้งการเขียน 1e-9 จะสะดวกกว่า 0.000000001
อักขระตัวเดียวเขียนด้วยเครื่องหมายอะพอสทรอฟี เช่น "a", "D", "@"
มีอักขระพิเศษและอักขระควบคุมบางตัวที่เขียนโดยใช้ลำดับหลีกพิเศษ รายการที่พบบ่อยที่สุดแสดงอยู่ในตาราง:
ลำดับการหลบหนียังอยู่ในเครื่องหมายอะพอสทรอฟี
บรรทัดแรกของตารางระบุว่าสามารถระบุอักขระใดก็ได้โดยใช้รหัส (ด้วยการเข้ารหัสทศนิยมตั้งแต่ 0 ถึง 255) โดยการเขียนโค้ดนี้ในระบบเลขฐานแปด ตัวอย่างเช่น ตัวอักษร "g" ในการเข้ารหัส CP1251 จะถูกเขียนด้วยลำดับหลีก "\ 346"
หากจำเป็น คุณสามารถระบุรหัสของอักขระใดก็ได้ใน การเข้ารหัส Unicode- หลังแบ็กสแลชและตัวอักษรละติน u - เป็นอักขระฐานสิบหกสี่ตัว ตัวอย่างเช่น "\ u0055" คือตัวอักษร U
สตริงอักขระอยู่ในเครื่องหมายคำพูด เครื่องหมายอัญประกาศเปิดและปิดต้องอยู่ในบรรทัดเดียวกันของรหัส
สำหรับสตริง จะมีการกำหนดการดำเนินการต่อ + ซึ่งช่วยให้คุณสามารถรวบรวมสตริงต่างๆ ให้เป็นหนึ่งเดียว
หากค่าคงที่สตริงยาวเกินไปและมองเห็นได้ไม่ดีในโค้ดโปรแกรมเมื่อเขียนเป็นบรรทัดเดียว คุณสามารถเขียนเป็นหลายบรรทัด โดยเชื่อมเข้าด้วยกันโดยใช้การดำเนินการต่อสตริง ตัวอย่างเช่น:
"นี่คือค่าคงที่สตริงที่ยาวมากที่เขียน" + "ในสองบรรทัดของแหล่งที่มา"อักขระควบคุมและรหัสถูกเขียนภายในสตริงในลักษณะเดียวกับ แบ็กสแลช(แต่ไม่มีอะพอสทรอฟี)
ตัวอักษรบูลีนเป็นจริงและเท็จ
ตัวระบุ
เกี่ยวกับกฎของสไตล์ที่ดี
เมื่อเขียนโปรแกรม จำเป็นต้องมีตัวระบุสำหรับการตั้งชื่ออ็อบเจ็กต์อย่างต่อเนื่อง
ตัวระบุสามารถประกอบด้วยตัวอักษร ตัวเลข ขีดล่าง _ และเครื่องหมายดอลลาร์ $ (ไม่แนะนำให้ใช้ตัวหลัง Java ใช้เพื่อความต้องการของตนเอง) ตัวระบุไม่สามารถเริ่มต้นด้วยตัวเลขได้ คีย์เวิร์ด Java (หรือตามตัวอักษร ถูกผิดและ โมฆะ).
ตามที่ระบุไว้ข้างต้น ภาษา Java แยกความแตกต่างระหว่างตัวอักษรธรรมดาและตัวพิมพ์เล็ก... ซึ่งหมายความว่า myAge, myage และ MyAge เป็นชื่อของอ็อบเจ็กต์ที่แตกต่างกันโดยสิ้นเชิง ระวัง: ข้อผิดพลาดในการลงทะเบียนเป็นกรณีทั่วไปมาก!
ชื่อคลาสจะขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่ หากชื่อประกอบด้วยหลายคำ แต่ละคำจะขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่ ตัวอย่างเช่น: MyClass, หนังสือ
ชื่อเมธอดและตัวแปรขึ้นต้นด้วยตัวพิมพ์เล็ก (ตัวพิมพ์เล็ก) ถ้าชื่อมีหลายคำ คำถัดไปแต่ละคำจะขึ้นต้นด้วยตัวพิมพ์ใหญ่ ตัวอย่างเช่น myVar, x, y, newBigCounter
ชื่อคงที่เขียนเต็ม อักษรพิมพ์ใหญ่; ถ้าชื่อมีหลายคำ จะมีการขีดเส้นใต้ระหว่างคำเหล่านั้น ตัวอย่างเช่น PI COUNT_OF_MONTHS
มีประโยชน์มากมายในการใช้แนวทางเหล่านี้ หนึ่งในนั้นคือ คุณจะรู้วิธีวางอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กอย่างชัดเจนเมื่อใช้ standard ไลบรารี Javaซึ่งผู้พัฒนาปฏิบัติตามคำแนะนำ
ชนิดข้อมูล
เกี่ยวกับประเภทข้อมูล Java
ประเภท int มักใช้ในการเก็บจำนวนเต็มใน Java
โดยทั่วไป มีสี่ประเภทจำนวนเต็มในภาษา Java: ไบต์ สั้น int ยาว พวกเขาแตกต่างกันในจำนวนหน่วยความจำที่จะจัดสรรสำหรับตัวแปรและดังนั้นในช่วงของค่าที่สามารถเก็บไว้ในตัวแปรนี้ ประเภท int ที่ใช้บ่อยที่สุดมีหน่วยความจำ 4 ไบต์และเหมาะสำหรับการจัดเก็บตัวเลขตั้งแต่ -2147483648 ถึง 2147483647 ประเภทไบต์ใช้หน่วยความจำน้อยที่สุดและเหมาะสำหรับการทำงานกับตัวเลขขนาดเล็ก (ตั้งแต่ -128 ถึง 127) ประเภทสั้นและยาวคือ 2 และ 8 ไบต์ตามลำดับ
ประเภทคู่เหมาะสำหรับจำนวนจริง
ตัวเลขจริง (ของจริง) (หรือตัวเลขทศนิยม) มีสองประเภท: ทศนิยมและสองเท่า ประเภทโฟลตใช้หน่วยความจำสูงสุด 4 ไบต์และไม่ได้ให้ความแม่นยำในระดับสูงเมื่อต้องจัดการกับตัวเลขขนาดใหญ่หรือเล็กมาก ขอแนะนำให้ใช้เมื่อต้องการเศษส่วน แต่ไม่จำเป็นต้องใช้ความแม่นยำสูง (เช่นสำหรับการวัดระยะทางเป็นเมตร แต่คำนึงถึงเซนติเมตรและมิลลิเมตรหรือการวัดราคาในรูเบิลโดยคำนึงถึง kopecks) หากต้องการการคำนวณที่แม่นยำยิ่งขึ้น ขอแนะนำให้ใช้ค่าของประเภทคู่ (เช่น ตัวแปรดังกล่าวสามารถเก็บค่าของไซน์ของมุม)
ตัวอักษรที่ถูกต้องเช่น 5.3, 8.0, 2e-3 ถูกพิจารณาโดย Java ให้เป็นสองเท่า หากจะใช้เป็นแบบลอยตัวในโปรแกรม พวกเขาจะต้องลงท้ายด้วยตัวอักษร f: 5.3f, 8.0f, 2e-3f
ถ่านชนิดที่ใช้เก็บอักขระตัวเดียว Java ถือว่าเป็นประเภทจำนวนเต็ม (เนื่องจากแต่ละอักขระถูกระบุด้วยรหัส Unicode ของตัวเอง) ดังนั้นการดำเนินการจำนวนเต็มทั้งหมดจึงนำไปใช้กับ char
ค่าบูลีน (จริงหรือเท็จ) จะแสดงด้วยประเภทบูลีน
ดังนั้น Java กำหนดแปดประเภทอย่างง่ายซึ่งนำเสนอคุณสมบัติใน ตาราง:
การประกาศตัวแปร
ใน Java (เช่นเดียวกับในภาษาอื่น ๆ มากมาย) คุณต้องอธิบายก่อนใช้งาน ในการอธิบายตัวแปรคือการตั้งชื่อและกำหนดประเภทของตัวแปร
เมื่อประกาศตัวแปร ประเภทจะถูกระบุก่อน (ซึ่งอาจเป็นหนึ่งในประเภทอย่างง่าย ชื่อของคลาสหรืออินเทอร์เฟซ) จากนั้นจึงระบุชื่อของตัวแปร ถ้าต้องการตัวแปร เริ่มต้น(กำหนดค่าเริ่มต้น) ค่าเริ่มต้นจะถูกระบุหลังชื่อผ่านเครื่องหมายเท่ากับ สามารถประกาศตัวแปรประเภทเดียวกันอีกหลายๆ ตัวคั่นด้วยเครื่องหมายจุลภาค
ตัวอย่างการประกาศตัวแปร:
int x; // ประกาศตัวแปรจำนวนเต็ม xสองเท่า, ข; // ประกาศตัวแปรจริงสองตัว a และ bตัวอักษรถ่าน = "Z"; // ประกาศตัวแปรตัวอักษร เริ่มต้นด้วยค่าเริ่มต้นของ "Z"บูลีน b1 = จริง, b2, b3 = เท็จ; // ประกาศตัวแปรบูลีนสามตัว ตัวแรกจะเป็นจริง ตัวสุดท้ายจะเป็นเท็จการใช้งานภาษาพื้นฐาน
ตัวแปรและสามารถมีส่วนร่วมได้ (ซึ่งในทางกลับกัน สามารถสร้างตัวแปรที่ซับซ้อนได้) ลองพิจารณาการดำเนินการที่ง่ายที่สุด ภาษาจาวา.
การดำเนินการทางคณิตศาสตร์
การดำเนินการเปรียบเทียบ ผลลัพธ์คือค่าบูลีน: จริงหรือเท็จ
การดำเนินการเชิงตรรกะ
เกี่ยวกับการทำงานของจาวา
&& และ || ต่างกันตรงที่ค่าของวินาทีนั้นไม่จำเป็นต้องคำนวณ ตัวอย่างเช่น && ประเมินค่าของตัวถูกดำเนินการแรก และหากเป็นเท็จ จะส่งคืนค่าเท็จทันที ในขณะที่ || คืนค่า จริง ทันทีหากเห็นว่าตัวถูกดำเนินการแรกเป็นจริง Java มีการดำเนินการที่คล้ายกัน & และ | พวกเขาประเมินค่าของตัวถูกดำเนินการทั้งสองก่อนดำเนินการกับตัวถูกดำเนินการ
กะการทำงาน
(ทำงานกับการแสดงบิตของตัวถูกดำเนินการแรก)
การดำเนินการระดับบิต
(ทำงานกับการแสดงบิตของตัวถูกดำเนินการ)
การดำเนินการ?:
Operation ?: ternary นั่นคือมีตัวถูกดำเนินการสามตัว ตัวถูกดำเนินการแรกคือเงื่อนไข นิพจน์บูลีน ตัวถูกดำเนินการที่สองและสามคือนิพจน์ประเภทอื่น การดำเนินการทำงานดังนี้: ถ้าเงื่อนไขเป็นจริง จะส่งกลับตัวถูกดำเนินการที่สองเป็นผล และถ้าเป็นเท็จ จะคืนค่าตัวถูกดำเนินการที่สาม
ตัวอย่างเช่น นิพจน์ (5> 3)? 7 + 1: 2*2 จะมีค่าเป็น 8 แต่นิพจน์ (5 == 3)? 7 + 1: 2 * 2 - ค่า 4 สัญกรณ์นี้ดูไม่ค่อยสื่อความหมายนัก แต่โปรแกรมเมอร์มักใช้เพื่อย่อโค้ดของตน ดังนั้น แทนที่จะเป็นลำดับของคำสั่ง:
ถ้า (x> 0) y = 45 + a * 2; // หากกล่าวถึงคำสั่งด้านล่างอย่างอื่น y = 45 - b * 3;คุณสามารถเขียน:
Y = 45 + ((x> 0)? A * 2: -b * 3);
ผู้ปฏิบัติงานที่ได้รับมอบหมาย
หลังจากอธิบายตัวแปรแล้ว คุณสามารถทำงานกับตัวแปรนั้นในโปรแกรมได้ โดยเฉพาะอย่างยิ่งสามารถกำหนดค่าประเภทที่เหมาะสมได้ จากนั้น ในอนาคต เมื่อใช้ตัวแปรนี้ในนิพจน์ใดๆ ค่าปัจจุบันนี้จะถูกแทนที่โดยอัตโนมัติ
ค่าเชื่อมโยงกับตัวแปรโดยใช้การมอบหมาย ใน Java เขียนด้วยเครื่องหมายเท่ากับอย่างง่าย:
ตัวแปร = นิพจน์;
ทางด้านซ้ายของตัวดำเนินการกำหนดจะเป็นตัวแปรเสมอ ทางด้านขวาจะต้องตรงกับตัวแปรตามประเภท อาจเป็นแบบง่ายๆ (เช่น ตัวเลขหรือสัญลักษณ์):
X = 7; // ตัวแปร x ถูกกำหนดเป็นค่า 7จดหมาย = "Q"; // ตัวอักษรถูกกำหนดเป็น "Q"
โดยทั่วไป นิพจน์คือสิ่งที่สามารถคำนวณได้ (เช่น ผลลัพธ์ของการดำเนินการทางคณิตศาสตร์หรือผลลัพธ์ที่ส่งคืนโดยวิธีการบางอย่าง):
A = 7.5 + 2.4; // ตัวแปร a ถูกกำหนด 9.9 อันเป็นผลมาจากการคำนวณ
นอกเหนือจากตัวอักษรแล้ว ตัวแปรอื่นๆ สามารถมีส่วนร่วมในนิพจน์ได้ มูลค่าปัจจุบันของพวกเขาจะถูกแทนที่สำหรับพวกเขา อันเป็นผลมาจากคำสั่ง:
B = a + 1;
ตัวแปร b จะถูกตั้งค่าเป็น 10.9
ดังนั้น ตัวดำเนินการมอบหมายงานจึงทำงานดังนี้ ขั้นแรก ค่าของนิพจน์ทางด้านขวาจะถูกคำนวณ จากนั้นผลลัพธ์จะถูกกำหนดให้กับตัวแปรที่ระบุทางด้านซ้าย แม้แต่สถานการณ์ต่อไปนี้ก็เป็นไปได้:
X = x + 4;
คำสั่งนี้จะเพิ่มค่าปัจจุบันของตัวแปรจำนวนเต็ม x ขึ้น 4
และคำสั่งต่อไปนี้เขียนอย่างไม่ถูกต้องและจะไม่ทำงาน:
5 = x + 7; // ควรมีตัวแปรทางด้านซ้าย x + 3 = 14; // ควรมีตัวแปรเพียงตัวเดียวทางด้านซ้าย x = 4.5; // ตัวแปร x รับได้เฉพาะค่าจำนวนเต็ม
Eclipse จะพยายามระบุข้อผิดพลาดในบรรทัดเหล่านี้ก่อนเรียกใช้โปรแกรมโดยวางสัญญาณเตือนไว้ที่ขอบของโปรแกรมแก้ไขโค้ด คุณสามารถดูว่าเขาทำได้อย่างไร
เกี่ยวกับการหล่อแบบ
เมื่อตัวแปรประเภทหนึ่งถูกกำหนดเป็นค่าของอีกประเภทหนึ่ง จะใช้ค่านั้น หล่อ (แปลง) ประเภท... สำหรับประเภทตัวเลข (byte, short, int, long, float, double, char) จะเกิดขึ้นโดยอัตโนมัติหากชนิดของตัวแปรที่เปลี่ยนแปลงสามารถ "รองรับ" ค่าของประเภทอื่นได้
ตัวอย่างเช่น หากตัวแปรประเภท int ถูกกำหนดเป็นค่าประเภทไบต์ การแปลงจากชนิดไบต์เป็นชนิด int จะเกิดขึ้นโดยอัตโนมัติ ในทำนองเดียวกัน แบบทุ่นลอยน้ำสามารถหล่อแบบดับเบิ้ลได้ เป็นต้น
หากคุณพยายามกำหนดตัวแปรที่มีประเภทที่แม่นยำน้อยกว่า (เช่น ไบต์) ให้กับค่าประเภทที่แม่นยำยิ่งขึ้น (เช่น int) คอมไพเลอร์จะสร้างข้อความแสดงข้อผิดพลาด
สำหรับการหล่อแบบ คุณสามารถใช้ ตัวดำเนินการนักแสดง- ก่อนนิพจน์ที่เราต้องการทำการแปลงประเภท วงเล็บจะถูกวางพร้อมกับประเภทที่จะทำการแปลงภายในวงเล็บ เมื่อทำการหล่อประเภทจำนวนเต็มที่มีความแม่นยำสูงกว่าเป็นประเภทจำนวนเต็มที่มีความแม่นยำต่ำกว่า การแบ่งแบบโมดูโลสามารถทำได้โดยช่วงที่อนุญาตของประเภทที่ทำการหล่อ และเมื่อทำการหล่อนิพจน์แบบคู่ไปยังนิพจน์แบบลอย ความแม่นยำของนิพจน์จะ จะลดลง
ยาว j = (ยาว) 1.0; // ใช้ตัวดำเนินการแคสต์เพื่อลอง, j = 1ถ่าน ch = (ถ่าน) 1001; // ใช้ตัวดำเนินการ cast to char ch = "d"ไบต์ b2 = (ไบต์) (100); // ใช้ตัวดำเนินการ cast จาก int เป็น byte, b2 = 100ไบต์ b3 = (ไบต์) (100 * 2); //ความสนใจ! การแบ่งโมดูโลเกิดขึ้น b3 = -56ข้อผิดพลาดประเภทไม่ตรงกันมักเกิดขึ้นกับตัวอักษรที่ถูกต้อง ตัวอย่างเช่น คุณไม่สามารถดำเนินการมอบหมาย a = 7.5 + 2.4; ถ้าตัวแปร a เป็นประเภท float เนื่องจากตัวอักษร 7.5 และ 2.4 ถือเป็นประเภท double เพื่อหลีกเลี่ยงข้อผิดพลาด จำเป็นต้องใช้ typecasting:
A = (ลอย) (7.5 + 2.4);
หรือเพื่อระบุว่าตัวอักษรนั้นลอยอยู่ด้วย:
A = 7.5f + 2.4f; // นี่เป็นคำสั่งที่ถูกต้องเช่นกัน
การดำเนินการไบนารีเกือบทุกครั้งมีตัวดำเนินการกำหนดประเภทของตัวเอง ตัวอย่างเช่น สำหรับการดำเนินการบวก + มีโอเปอเรเตอร์การกำหนดเอกพจน์ + = ซึ่งเพิ่มค่าของตัวถูกดำเนินการตามจำนวนที่กำหนด:
X + = 8; // เหมือนกับ x = x + 8 (x เพิ่มขึ้น 8)
ในทำนองเดียวกันสำหรับการดำเนินการอื่นๆ: ตัวดำเนินการ * =, - =, / =,% =, & = ^ = ฯลฯ:
X * = 3; // เหมือนกับ x = x * 3 (x เพิ่มขึ้น 3 เท่า) b1 ^ = b2; // เหมือนกับ b1 = b1 ^ b2
แบบฝึกหัด 1
ประกาศตัวแปรจำนวนเต็มสองตัวกำหนดค่าใด ๆ ให้กับพวกมัน พิมพ์ผลรวมและผลิตภัณฑ์
แจ้ง:คุณสามารถใช้โปรเจ็กต์ที่สร้างไว้แล้วใน Eclipse โดยวาง คำสั่งที่จำเป็นหลังจากคำสั่งให้ส่งออกบรรทัด "สวัสดีชาวโลก!" หรือแทนมัน
ตัวดำเนินการเพิ่มและลดค่า
เกี่ยวกับตัวดำเนินการเพิ่มและลดค่า
ตัวดำเนินการเพิ่มและลด ++ และ –– เพิ่มและลดค่าของตัวถูกดำเนินการทีละหนึ่ง สะดวกกว่ามากในการใช้คำสั่ง x ++; แทนคำสั่ง x = x + 1;
ตัวดำเนินการ increment และ decrement ยังคืนค่าอีกด้วย ซึ่งหมายความว่าการดำเนินการตามคำสั่งนั้นถูกกฎหมาย
Y = 7 * x ++;
เป็นผลให้ตัวแปร x เพิ่มขึ้น 1 และตัวแปร y จะใช้ค่าเจ็ดเท่าของค่าเดิมของ x คุณยังสามารถเรียกใช้คำสั่งนี้:
Y = 7 * ++ x;
เป็นผลให้ตัวแปร x เพิ่มขึ้น 1 และตัวแปร y จะใช้ค่าเจ็ดเท่าของค่าใหม่ของ x
เงื่อนไข if คำสั่ง
รูปแบบที่ง่ายที่สุดของการเขียนตัวดำเนินการตามเงื่อนไขคือ:
if (เงื่อนไข) คำสั่งเงื่อนไขในวงเล็บคือนิพจน์บูลีน เช่น สามารถเป็นจริงหรือเท็จ หากเงื่อนไขเป็นจริง คำสั่งจะถูกดำเนินการ มิฉะนั้น จะไม่มีอะไรเกิดขึ้น ตัวอย่างเช่น:
if (x // ถ้าค่าของตัวแปร x น้อยกว่า 17 ให้กำหนด x เป็น 17หากจำเป็นในกรณีที่เงื่อนไขเป็นเท็จ คำสั่งอื่นจะถูกดำเนินการ ให้ใช้รูปแบบเพิ่มเติมของคำสั่ง if:
ถ้า (เงื่อนไข) command1 else command2เกี่ยวกับสิ่งอื่นถ้าสร้าง
ในตัวอย่างข้างต้น เราอาจต้องกำหนดตัวแปร x เป็น 5 ถ้าเงื่อนไข x ไม่ถูกดำเนินการ (ทำไมเราต้องการมัน คำถามอื่น)
ถ้า (x อื่น x = 5;หากจำเป็นต้องใช้เงื่อนไขที่ไม่เกิดร่วมกันหลายประการ สามารถเขียนได้ดังนี้:
if (condition1) command1 else if (condition2) command2 else if (เงื่อนไข3) command3 ... else commandNแบบฝึกหัดที่ 2
ประกาศตัวแปรจำนวนเต็มสองตัวกำหนดค่าใด ๆ ให้กับพวกมัน ใช้คำสั่ง if เพื่อค้นหาและส่งออกค่าสูงสุด
แจ้ง:อัลกอริธึมสำหรับการค้นหาค่าสูงสุดได้รับการพิจารณาในขณะที่ทำซ้ำการสร้างพื้นฐานของอัลกอริธึม
คำสั่งผสม
คำสั่งภาษา Java หลายคำสั่งสามารถรวมกันเป็นคำสั่งผสมเดียวโดยใช้เครื่องหมายปีกกา () ตัวอย่างเช่น คุณสามารถเขียน:
(a = 12; ตัวอักษร = "D";)
คำสั่งผสมสามารถใช้ได้ทุกที่ที่มีคำสั่งปกติ ตัวอย่างเช่น ในคำสั่ง if หากจำเป็นต้องดำเนินการหลายอย่างเมื่อตรงตามเงื่อนไข:
ถ้า (x "S";) อื่น ๆ (x = 5;)โครงสร้างเหล็กดัดโค้งเรียกอีกอย่างว่า บล็อกของคำสั่งและเหล็กดัดงอคือ ปิดกั้นขอบเขต.
โปรดทราบว่าสัญกรณ์ที่ใช้ในตัวอย่าง (เมื่อขอบเขตของบล็อกถูกวางบนบรรทัดที่แยกจากกัน และเนื้อหาของบล็อกถูกเขียนเยื้องจากขอบเขตของบล็อก) เป็นทางเลือก เป็นเพียงกฎของรูปแบบที่ทำให้โปรแกรมเข้าใจได้ง่ายขึ้นและไม่สับสนกับเครื่องหมายปีกกา ซึ่งมักใช้ในโปรแกรม Java
เกี่ยวกับคำสั่งการเลือกสวิตช์
คำสั่งสลับการเลือก
บ่อยครั้งที่การเลือกคำสั่งที่จะดำเนินการขึ้นอยู่กับค่าของตัวแปรบางตัว (หรือนิพจน์) ตัวอย่างเช่น ผู้ใช้จะได้รับแจ้งให้ป้อนเครื่องหมายการดำเนินการ และจำเป็นต้องแสดงผลการบวก การลบ ฯลฯ ทั้งนี้ขึ้นอยู่กับอักขระที่ป้อน หรือหากป้อนอักขระไม่ถูกต้อง ข้อความแสดงข้อผิดพลาด ในกรณีนี้ สะดวกในการใช้คำสั่งการเลือกสวิตช์ ซึ่งมีสัญกรณ์ต่อไปนี้:
สวิตช์ (นิพจน์) (กรณี value1: ลำดับคำสั่ง 1 ตัวแบ่ง; case value2: ลำดับคำสั่ง 2 break; ... ค่าเริ่มต้น: ลำดับคำสั่งเริ่มต้น)ค่า 1 ค่า 2 ฯลฯ คือค่าคงที่หรือนิพจน์ที่เกี่ยวข้องกับค่าคงที่เท่านั้น นิพจน์ในวงเล็บหลัง คำสำคัญสวิตช์สามารถมีตัวแปรได้ นิพจน์นี้ได้รับการประเมิน จากนั้นผลลัพธ์จะถูกจับคู่กับค่าใดค่าหนึ่งหลังคีย์เวิร์ด case หากพบการจับคู่ดังกล่าว ลำดับทั้งหมดของคำสั่งที่อยู่ระหว่างโคลอนและคำสั่ง break ที่ใกล้ที่สุดจะถูกดำเนินการ หากไม่พบรายการที่ตรงกัน ลำดับเริ่มต้นของคำสั่งที่ต่อจากคีย์เวิร์ดเริ่มต้นจะถูกดำเนินการ ตัวอย่างเช่น:
ตัวดำเนินการถ่าน; // ป้ายการทำงาน จะถูกเลือกโดยผู้ใช้ ... // สมมุติว่าตอนนี้ผู้ใช้ได้เลือกเครื่องหมายแล้วสวิตช์ (oper) (ตัวพิมพ์ "+": System.out.println (a + b); break; case "-": System.out.println (a - b); break; case "*": System.out println (a * b); แตก; ค่าเริ่มต้น: System.out.println ( "สัญญาณธุรกรรมไม่ถูกต้อง"); }คุณสามารถละเว้นส่วนเริ่มต้น ในกรณีนี้ หากไม่พบรายการที่ตรงกัน จะไม่มีการดำเนินการคำสั่งใดๆ
ในขณะที่คำสั่งวนรอบ
while loop มีรูปแบบดังนี้:
ในขณะที่ (เงื่อนไข) คำสั่งหากเงื่อนไขวงเล็บ (ซึ่งเป็นนิพจน์บูลีน) เป็นจริง คำสั่งจะถูกดำเนินการ - ห่วงร่างกาย(อาจเป็นคำสั่งธรรมดาหรือลำดับของคำสั่งในวงเล็บปีกกา) หลังจากนั้นโปรแกรมจะกลับไปดำเนินการตามคำสั่งนี้และทำซ้ำจนกว่าเงื่อนไขจะเป็นเท็จ
ดังนั้น เพื่อให้โปรแกรมไม่เข้าสู่การวนซ้ำแบบไม่มีที่สิ้นสุดและไม่ค้าง เนื้อหาลูปต้องจัดเตรียมตัวเลือกการออก เช่น คำสั่งในเนื้อความของลูปต้องส่งผลต่อตัวแปรที่รวมอยู่ในเงื่อนไขอย่างใด
ตัวอย่างเช่น ข้อมูลโค้ดต่อไปนี้พิมพ์เลขคู่ตั้งแต่ 2 ถึง 10:
int x = 2; ในขณะที่ (x<= 10){ System.out.println(x); x += 2; }เกี่ยวกับ while วนรอบกับ postcondition
มีอีกวิธีในการเขียน while loop:
ทำคำสั่งในขณะที่ (เงื่อนไข)เมื่อใช้ตัวเลือกนี้ คำสั่งจะถูกดำเนินการก่อน จากนั้นจึงตรวจสอบเงื่อนไข ทั้งสองตัวเลือกทำงานในลักษณะเดียวกัน แต่ในกรณีที่สอง เนื้อหาลูป (คำสั่ง) จะถูกดำเนินการอย่างน้อยหนึ่งครั้ง แม้ว่าเงื่อนไขจะเป็นเท็จในตอนแรกก็ตาม
แบบฝึกหัด # 3
ใช้ while loop เพื่อพิมพ์เลขคี่ทั้งหมดตั้งแต่ 1 ถึง 10
แจ้ง:เปลี่ยนอัลกอริทึมเล็กน้อยสำหรับการส่งออกเลขคู่
สำหรับตัวดำเนินการลูป
ลูป for มักใช้เมื่อทราบล่วงหน้าว่าควรทำซ้ำการดำเนินการคำสั่ง (หรือลำดับของคำสั่ง) กี่ครั้ง มีรูปแบบดังนี้
สำหรับ (คำสั่ง init; เงื่อนไข; คำสั่งกระโดด) loop-bodyก่อนเริ่มรอบการทำงาน คำสั่งเริ่มต้นจะถูกดำเนินการ จากนั้นตรวจสอบเงื่อนไขการข้าม (ซึ่งเป็นนิพจน์บูลีน) หากเงื่อนไขนี้เป็นจริง คำสั่ง (หรือบล็อกของคำสั่งในวงเล็บปีกกา) ที่ประกอบเป็นเนื้อหาของลูปจะถูกดำเนินการ จากนั้นคำสั่ง jump จะถูกดำเนินการและทุกอย่างจะเริ่มต้นใหม่ คำสั่งกระโดดมักจะเปลี่ยนตัวแปรที่มีผลต่อความจริงของเงื่อนไข และคำสั่งเริ่มต้นคือคำอธิบายของตัวแปรนี้
โดยทั่วไปจะใช้ for loop ดังนี้:
สำหรับ (int i = 1; i<= 10; i++) тело_цикла;ในตัวอย่างนี้ loop-body จะถูกดำเนินการ 10 ครั้งพอดี ในกรณีนี้ ในการวนซ้ำแต่ละครั้ง ตัวแปร i (เรียกว่าตัวแปรลูป) จะพร้อมใช้งาน ทำงานตามลำดับผ่านค่าตั้งแต่ 1 ถึง 10 แฟรกเมนต์โปรแกรมถัดไปจะส่งออกตัวเลขคู่ตั้งแต่ 2 ถึง 10 (คล้ายกับ ในขณะที่ตัวอย่างลูป):
สำหรับ (int i = 1; i<= 5; i++) System.out.println(i*2);แบบฝึกหัด 4
ใช้ a for loop เพื่อพิมพ์เลขคี่ทั้งหมดตั้งแต่ 1 ถึง 10
ทำลายและดำเนินการต่องบ
เมื่อเนื้อความของลูป (for หรือ while) ประกอบด้วยคำสั่งหลายคำสั่ง สถานการณ์อาจเกิดขึ้นซึ่งไม่จำเป็นต้องดำเนินการทั้งหมดในการวนซ้ำครั้งถัดไป ในกรณีนี้ คำสั่ง break และ continue จะมีประโยชน์
คำสั่ง break จะยุติการดำเนินการของลูปปัจจุบัน โดยไม่คำนึงว่าเงื่อนไขการสิ้นสุดเป็นไปตามเงื่อนไขหรือไม่
คำสั่งต่อไปจะยุติการดำเนินการวนซ้ำปัจจุบัน กล่าวคือ หากพบโอเปอเรเตอร์นี้ในเนื้อหาของลูป คำสั่งที่เหลือจะถูกข้ามและการวนซ้ำ (ซ้ำ) ของลูปจะเริ่มต้นขึ้น
บทสรุป
แม้ว่าเนื้อหาในบทเรียนแรกจะค่อนข้างกว้างขวาง แต่ก็ไม่ควรสร้างปัญหาให้กับนักเรียนที่คุ้นเคยกับภาษาการเขียนโปรแกรมอย่างน้อยหนึ่งภาษาอยู่แล้ว เนื่องจากโครงสร้างในทุกภาษาจะเหมือนกันและคุณจะต้องเชี่ยวชาญ กฎสำหรับการเขียน (ไวยากรณ์) หากความคุ้นเคยกับภาษาโปรแกรมอื่นไม่ดีก็จำเป็นต้องทำงานหนักในคู่มือและแก้ไขปัญหาเพิ่มเติม ทางเลือกที่ดีที่สุดในกรณีนี้คืออ่านบทที่แนะนำจากวรรณกรรมก่อนบทเรียนถัดไป
วรรณกรรมเพิ่มเติม
1. Vyazovik N.A. การเขียนโปรแกรมจาวา (บทที่ 1 - 4, 7, 10)
2. Khabibullin I.Sh. Java Self Tutorial 2 (บทที่ 1)
ให้ความสนใจเป็นพิเศษกับประเภทข้อมูล Java และกฎการแคสต์ ซึ่งไม่ได้กล่าวถึงในรายละเอียดในบทช่วยสอนนี้ โปรแกรมเมอร์มืออาชีพควรควบคุมในโปรแกรมของเขาเสมอถึงความเป็นไปได้ของค่าตัวแปรที่เกินขอบเขตที่อนุญาตสำหรับประเภทของมัน ข้อผิดพลาดในการพิมพ์เป็นข้อผิดพลาดที่พบได้บ่อยที่สุดและตรวจจับได้ยาก ขอแนะนำให้อ่านบทที่ 4 และ 7 ของหนังสือเล่มแรกสำหรับนักเรียนทุกคนที่สมัครเรียนเพื่อให้ได้เกรดดีเยี่ยม
เพจ JSP มีไวยากรณ์ที่รวมกัน: การรวมกันของไวยากรณ์มาตรฐานที่สอดคล้องกับข้อกำหนด HTML และไวยากรณ์ JSP ที่กำหนดโดยข้อมูลจำเพาะ Java Server Pages ไวยากรณ์ JSP กำหนดกฎสำหรับการเขียนหน้า JSP ซึ่งประกอบด้วยแท็ก HTML มาตรฐานและแท็ก JSP หน้า JSP นอกจากแท็ก HTML แล้ว ยังมีแท็ก JSP ในหมวดหมู่ต่อไปนี้:
คำสั่ง JSP
คำสั่งให้ข้อมูลทั่วโลกเกี่ยวกับคำขอเฉพาะไปยัง JSP และให้ข้อมูลที่จำเป็นในระหว่างขั้นตอนการแปลคำสั่งจะถูกวางไว้ที่จุดเริ่มต้นของหน้า JSP ก่อนแท็กอื่นๆ ทั้งหมด ดังนั้น พาร์เซอร์(parser) JSP เมื่อแยกวิเคราะห์ข้อความที่จุดเริ่มต้น เน้นคำสั่งส่วนกลาง ดังนั้น JSP Engine (รันไทม์ JSP) จะแยกวิเคราะห์โค้ดและสร้างเซิร์ฟเล็ตจาก JSP คำสั่งเป็นข้อความที่ส่งไปยังคอนเทนเนอร์ JSP ไวยากรณ์ คำสั่ง JSP มีลักษณะดังนี้:
<%@ директива имяАтрибута="значение" %>ไวยากรณ์งาน คำสั่งใน XML:
- หน้า (หน้า)
- taglib (ไลบรารีแท็ก)
- รวม (รวม)
คำสั่งหน้า
คำสั่ง หน้าหนังสือกำหนดคุณสมบัติของหน้า JSP ที่ส่งผลต่อนักแปล ลำดับของคุณลักษณะในคำสั่ง หน้าหนังสือไม่เป็นไร. การละเมิดไวยากรณ์หรือการมีอยู่ของแอตทริบิวต์ที่ไม่รู้จักส่งผลให้เกิดข้อผิดพลาดในการแปล ตัวอย่างของคำสั่ง หน้าหนังสือรหัสต่อไปนี้สามารถให้บริการ:<%@ page buffer="none" isThreadSafe="yes" errorPage="/error.jsp" %>คำสั่งนี้ประกาศว่าหน้า JSP นี้ไม่ได้ใช้บัฟเฟอร์ ผู้ใช้หลายคนสามารถเข้าถึงหน้า JSP นี้พร้อมกันได้ และหน้าแสดงข้อผิดพลาดชื่อ error.jsp.คำสั่ง หน้าหนังสืออาจมีข้อมูลเกี่ยวกับหน้า:<%@ page info = "JSP Sample 1" %>รายการแอตทริบิวต์คำสั่งที่เป็นไปได้ หน้าหนังสือนำเสนอในตาราง
ชื่อแอตทริบิวต์ | ความหมาย | คำอธิบาย |
---|---|---|
ภาษา | เส้น | กำหนดภาษาที่ใช้ในสคริปต์เล็ตไฟล์ JSP นิพจน์ หรือไฟล์ที่รวมไว้ รวมถึงเนื้อหาของโค้ดที่แปลแล้ว ค่าเริ่มต้นคือ "java" |
ยืดออก | เส้น | ระบุซูเปอร์คลาสสำหรับเซิร์ฟเล็ตที่สร้างขึ้น แอตทริบิวต์นี้ควรใช้ด้วยความระมัดระวังเป็นอย่างยิ่ง เนื่องจากเป็นไปได้ว่าเซิร์ฟเวอร์กำลังใช้ซูเปอร์คลาสอยู่แล้ว |
นำเข้า | เส้น | คำจำกัดความของแพ็คเกจที่จะนำเข้า เช่น & lt% @ การนำเข้าหน้า = "java.util. *%> |
การประชุม | จริงหรือเท็จ | ความหมาย จริง(ค่าเริ่มต้น) ระบุว่าตัวแปรที่กำหนดไว้ล่วงหน้า การประชุม(ประเภท HttpSession) ต้องถูกผูกไว้กับเซสชันที่มีอยู่ หากมี มิฉะนั้น เซสชันใหม่จะถูกสร้างขึ้นและผูกไว้ ความหมาย เท็จกำหนดว่าจะไม่ใช้เซสชันและพยายามเข้าถึงตัวแปร การประชุมจะทำให้เกิดข้อผิดพลาดเมื่อแปลหน้า JSP เป็น servlet |
กันชน | ไม่มีหรือขนาดของบัฟเฟอร์ในหน่วย kB | ตั้งค่าขนาดบัฟเฟอร์สำหรับ JspWriter ค่าเริ่มต้นขึ้นอยู่กับการตั้งค่าเซิร์ฟเวอร์และไม่ควรเกิน 8 kB ถ้าค่าเป็น ไม่มีเอาต์พุตไปที่วัตถุโดยตรง |
ออโต้ฟลัช | จริงหรือเท็จ | กำหนดว่าควรล้างบัฟเฟอร์โดยอัตโนมัติเมื่อล้นหรือเกิดข้อผิดพลาด ค่าเริ่มต้นคือ จริง |
isThreadSafe | จริงหรือเท็จ | ความหมาย จริง(ค่าดีฟอลต์) ระบุโหมดการดำเนินการปกติของเซิร์ฟเล็ต โดยที่คำขอหลายรายการได้รับการประมวลผลพร้อมกันโดยใช้อินสแตนซ์เซิร์ฟเล็ตตัวเดียว สมมติว่าผู้เขียนได้ซิงโครไนซ์การเข้าถึงตัวแปรของอินสแตนซ์นั้น ค่าเท็จส่งสัญญาณว่าเซิร์ฟเล็ตควรสืบทอด SingleThreadModel(โมเดลเธรดเดียว) โดยที่การร้องขอแบบต่อเนื่องหรือพร้อมกันได้รับการจัดการโดยอินสแตนซ์ที่แยกจากกันของเซิร์ฟเล็ต |
ข้อมูล | เส้น | กำหนดสตริงของข้อมูลเกี่ยวกับหน้า JSP ที่จะเข้าถึงได้โดยใช้เมธอด Servlet.getServletInfo () |
errorPage | เส้น | ค่าแอตทริบิวต์คือ URL ของหน้าที่ควรจะแสดงในกรณีที่มีข้อผิดพลาดที่อาจก่อให้เกิดข้อยกเว้น |
isErrorPage | จริงหรือเท็จ | ส่งสัญญาณว่าสามารถใช้หน้านี้เพื่อจัดการข้อผิดพลาดสำหรับหน้า JSP อื่นๆ ได้หรือไม่ ค่าเริ่มต้นคือ เท็จ |
ชนิดของเนื้อหา | เส้น | ระบุการเข้ารหัสสำหรับเพจ JSP และการตอบกลับ และประเภท MIME ของการตอบกลับ JSP ค่าเริ่มต้นของประเภทเนื้อหาคือ ข้อความ / html, การเข้ารหัส - ISO-8859-1ตัวอย่างเช่น: contentType = "ข้อความ / html; ชุดอักขระ = ISO-8859-1" |
การเข้ารหัสหน้า | เส้น | กำหนดการเข้ารหัสอักขระของเพจ JSP ค่าเริ่มต้นคือ ชุดอักขระจากแอตทริบิวต์ ชนิดของเนื้อหาหากมีการกำหนดไว้ที่นั่น ถ้าค่า ชุดอักขระในแอตทริบิวต์ ชนิดของเนื้อหา undefined ค่า การเข้ารหัสหน้ามีค่าเท่ากัน ISO-8859-1 |
คำสั่ง Taglib
คำสั่ง taglibประกาศว่าหน้า JSP ที่กำหนดใช้ไลบรารีแท็ก ระบุหน้า JSP โดยไม่ซ้ำกันด้วย URI และจับคู่คำนำหน้าแท็กที่ไลบรารีสามารถดำเนินการได้ หากคอนเทนเนอร์ไม่พบไลบรารีแท็ก จะเกิดข้อผิดพลาดในการแปลที่ร้ายแรง คำสั่ง taglibมีไวยากรณ์ต่อไปนี้:<%@ taglib uri="URI ของไลบรารีแท็กที่รวม"คำนำหน้า =" คำนำหน้าชื่อ"%> คำนำหน้า" คำนำหน้าชื่อ"ใช้อ้างอิงถึงห้องสมุด ตัวอย่างการใช้ tag library mytags: <%@ taglib uri="http://www.taglib/mytags" prefix="customs" %> . . .รวมคำสั่ง
คำสั่ง รวมอนุญาตให้คุณแทรกข้อความหรือโค้ดขณะแปลเพจ JSP เป็นเซิร์ฟเล็ต ไวยากรณ์คำสั่ง รวมมีลักษณะดังนี้:<%@ include file="URI สัมพัทธ์ของเพจที่จะรวม"%> คำสั่ง รวมมีหนึ่งคุณลักษณะ - ไฟล์... ซึ่งจะรวมข้อความของทรัพยากรที่ระบุในไฟล์ JSP คำสั่งนี้สามารถใช้เพื่อวางส่วนหัวลิขสิทธิ์มาตรฐานบนทุกหน้า JSP:<%@ include file="copyright.html" %>คอนเทนเนอร์ JSP เข้าถึงไฟล์รวม หากไฟล์รวมมีการเปลี่ยนแปลง คอนเทนเนอร์สามารถคอมไพล์หน้า JSP ใหม่ได้ คำสั่ง รวมถือว่าทรัพยากร เช่น หน้า JSP เป็นวัตถุแบบคงที่ URI ที่ให้มามักจะถูกตีความโดยสัมพันธ์กับ JSP ของหน้าเว็บที่มีลิงก์ แต่เช่นเดียวกับ URI ที่เกี่ยวข้อง คุณสามารถบอกระบบตำแหน่งของทรัพยากรที่น่าสนใจที่สัมพันธ์กับโฮมไดเร็กทอรีของเว็บเซิร์ฟเวอร์โดยนำหน้า URI ที่มีอักขระ "/" เนื้อหาของไฟล์รวมถือเป็นข้อความ JSP ธรรมดา ดังนั้นจึงสามารถรวมองค์ประกอบต่างๆ เช่น HTML แบบคงที่ องค์ประกอบสคริปต์ คำสั่ง และการดำเนินการได้ เว็บไซต์หลายแห่งใช้แถบนำทางขนาดเล็กในทุกหน้า เนื่องจากปัญหาในการใช้เฟรม HTML งานนี้จึงมักแก้ไขได้ด้วยการวางตารางขนาดเล็กไว้ด้านบนหรือด้านซ้ายของหน้า ซึ่งโค้ด HTML จะถูกทำซ้ำหลายครั้งในแต่ละหน้าของเว็บไซต์ คำสั่ง รวม- นี่เป็นวิธีที่เป็นธรรมชาติที่สุดในการแก้ปัญหานี้ ซึ่งช่วยให้นักพัฒนาพ้นจากฝันร้ายของกิจวัตรในการคัดลอก HTML ลงในแต่ละไฟล์ที่แยกจากกัน เนื่องจากคำสั่ง รวมเชื่อมต่อไฟล์ระหว่างการแปลหน้า จากนั้นหลังจากทำการเปลี่ยนแปลงในแถบนำทางแล้ว ต้องทำการแปลหน้า JSP ทั้งหมดอีกครั้งโดยใช้ไฟล์ดังกล่าว หากไฟล์แนบเปลี่ยนค่อนข้างบ่อย คุณสามารถใช้การกระทำได้ jsp: รวมที่เชื่อมต่อไฟล์เมื่อเข้าถึงหน้า JSPประกาศ JSP
ประกาศ (ประกาศ)มีวัตถุประสงค์เพื่อกำหนดตัวแปรและเมธอดในภาษาสคริปต์ ซึ่งจะใช้ในหน้า JSP ในภายหลัง ไวยากรณ์ ประกาศมีลักษณะดังนี้:<%! код Java %> โฆษณาอยู่ในบล็อกการประกาศและถูกเรียกในบล็อกนิพจน์ของหน้า JSP รหัสในบล็อกการประกาศมักจะเขียนด้วยภาษาจาวา แต่เซิร์ฟเวอร์แอปพลิเคชันสามารถใช้ไวยากรณ์ของสคริปต์อื่นได้ โฆษณาบางครั้งใช้เพื่อเพิ่มฟังก์ชันการทำงานเพิ่มเติมเมื่อทำงานกับข้อมูลไดนามิกที่ได้รับจากคุณสมบัติของคอมโพเนนต์ JavaBeans ตัวอย่างของ โฆษณาถูกนำเสนอในตาราง ประกาศสามารถมีได้หลายบรรทัด เช่น ในโค้ดด้านล่างสำหรับคำนวณค่าของฟังก์ชัน ความจริง (int n)ซึ่งควรเท่ากับ 1 เมื่อ n น้อยกว่า 2 และ n! ด้วยค่าบวกของ n;<%! public static int fact (int n) { if (n โฆษณาห้ามสร้างเอาต์พุตใด ๆ ให้เป็นเอาต์พุตมาตรฐาน ออก... ตัวแปรและวิธีการประกาศใน ประกาศถูกเตรียมใช้งานและพร้อมใช้งานสำหรับสคริปต์เล็ตและอื่น ๆ โฆษณาในขณะที่หน้า JSP ถูกเตรียมใช้งานJSP Scriptlets
สคริปต์รวมโค้ดต่างๆ ที่เขียนด้วยภาษาสคริปต์ที่กำหนดไว้ใน directive ภาษา... ข้อมูลโค้ดต้องสอดคล้องกับโครงสร้างวากยสัมพันธ์ของภาษา สคริปต์กล่าวคือ โดยปกติแล้ว ไวยากรณ์ของภาษา Java สคริปต์มีไวยากรณ์ต่อไปนี้:<% текст скриптлета %>เทียบเท่าไวยากรณ์ scriptletสำหรับ XML คือ:ถ้าอยู่ในข้อความ scriptletจำเป็นต้องใช้ลำดับของอักขระ%> เหมือนกับการรวมกันของอักขระ ไม่ใช่เป็นแท็ก - เครื่องหมายสิ้นสุด scriptletแทนที่จะใช้ลำดับ%> ให้ใช้อักขระ% \> ต่อไปนี้รวมกันข้อกำหนด JSP ให้ตัวอย่างที่ง่ายและตรงไปตรงมา scriptletที่เปลี่ยนแปลงเนื้อหาของหน้า JSP แบบไดนามิกตลอดทั้งวัน<% if (Calendar.getInstance ().get (Calendar.AM_PM) == Calendar.AM) {%>สวัสดีตอนเช้า<% } else { %>สวัสดีตอนบ่าย<% } %>ควรสังเกตว่ารหัสภายใน scriptletแทรกตามที่เขียนและข้อความ HTML แบบคงที่ทั้งหมด (ข้อความเทมเพลต) ก่อนหรือหลัง scriptletแปลงโดยใช้ตัวดำเนินการ พิมพ์... ซึ่งหมายความว่าสคริปต์เล็ตไม่จำเป็นต้องมีชิ้นส่วน Java ที่เสร็จสมบูรณ์ และส่วนที่เปิดทิ้งไว้อาจส่งผลต่อ HTML แบบคงที่ภายนอก scriptlet. สคริปต์มีสิทธิ์เข้าถึงตัวแปรที่กำหนดอัตโนมัติเหมือนกับนิพจน์ ดังนั้น ตัวอย่างเช่น หากจำเป็นต้องแสดงข้อมูลใด ๆ บนเพจ คุณต้องใช้ตัวแปร ออก. <% String queryData = request.getQueryString (); out.println ("Дополнительные данные запроса: " + queryData); %>
นิพจน์ JSP
การแสดงออกในหน้า JSP เป็นนิพจน์ปฏิบัติการที่เขียนในภาษาสคริปต์ที่ระบุในการประกาศ ภาษา(โดยปกติคือจาวา) ผลลัพธ์ สำนวน JSP ของประเภทที่ต้องการ สตริง, ส่งไปยังเอาต์พุตมาตรฐาน ออกโดยใช้วัตถุปัจจุบัน JspWriter... ถ้าผลลัพธ์คือ สำนวนหล่อไม่ได้ สตริงอาจเกิดข้อผิดพลาดในการแปลหากตรวจพบปัญหาในขั้นตอนการแปล หรือมีข้อยกเว้นเกิดขึ้น ClassCastExceptionหากตรวจพบความไม่สอดคล้องกันระหว่างการดำเนินการตามคำขอ การแสดงออกมีไวยากรณ์ต่อไปนี้: & lt% = ข้อความนิพจน์%> ไวยากรณ์ทางเลือกสำหรับ สำนวน JSP เมื่อใช้ XML:- คำขอ HttpServletRequest;
- การตอบสนอง HttpServletResponse;
- เซสชัน, HttpSession - เกี่ยวข้องกับคำขอ ถ้ามี;
- ออกไป PrintWriter - เวอร์ชันบัฟเฟอร์ของประเภท JspWriter สำหรับการส่งข้อมูลไปยังไคลเอ็นต์