คอมพิวเตอร์ Windows อินเทอร์เน็ต

โครงสร้างแบบมีเงื่อนไข สภาพแวดล้อมการทำงานคราส ตัวระบุ Java

ไวยากรณ์ของภาษา Java ขึ้นอยู่กับไวยากรณ์ของภาษา C แต่มีความแตกต่างดังต่อไปนี้:

ตัวระบุ:

  • เมื่อเขียนตัวระบุสามารถใช้ทั้งตัวอักษรละตินและตัวอักษรของตัวอักษรประจำชาติ
  • ตัวระบุสามารถมีเครื่องหมายดอลลาร์.

นี่คือกฎไวยากรณ์พื้นฐาน

  • ตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กถือเป็นอักขระที่แตกต่างกัน ดังนั้น J และ j จึงเป็นตัวแปรที่แตกต่างกันโดยสิ้นเชิง
  • เมื่อเขียนตัวระบุ จะใช้ตัวอักษรละตินและตัวอักษรของตัวอักษรประจำชาติ ตัวเลข ขีดล่าง และเครื่องหมายดอลลาร์ ตัวระบุไม่สามารถเริ่มต้นด้วยตัวเลขหรือมีช่องว่าง ความยาวของตัวระบุไม่จำกัด แต่เพื่อให้โปรแกรมอ่านง่าย คุณควรพยายามใช้ชื่อที่สั้นและมีความหมาย
  • ความคิดเห็นมีสองประเภท
    • ความคิดเห็นหลายบรรทัด ความคิดเห็นในข้อความอยู่ในวงเล็บเช่น
      / * นี่คือข้อความของความคิดเห็น * /
      และสามารถป้อนได้ทุกที่ โดยเฉพาะภายในโอเปอเรเตอร์
    • ความคิดเห็นหนึ่งบรรทัด ดูความคิดเห็น:
      // นี่คือข้อความของความคิดเห็น - ใช้ได้จนถึงท้ายบรรทัดเท่านั้น
  • แต่ละประโยคลงท้ายด้วย "; ".
  • สามารถวางคำสั่งหลายรายการในบรรทัดได้
  • วงเล็บปีกกา () ระบุข้อความประกอบ โอเปอเรเตอร์ทั้งหมดที่วางอยู่ระหว่างพวกเขาถือเป็นโอเปอเรเตอร์เดียว
  • ต้องอธิบายประเภทที่ใช้ทั้งหมดก่อนใช้งานครั้งแรก โฆษณาสามารถอยู่ที่ใดก็ได้ในโปรแกรม
  • อักขระอยู่ในเครื่องหมายคำพูดเดี่ยว สตริงในเครื่องหมายคำพูดคู่

คีย์เวิร์ด

คีย์เวิร์ดมีความหมายพิเศษสำหรับคอมไพเลอร์ และคำเหล่านี้สามารถใช้ได้ตามความหมายที่กำหนดไว้เท่านั้น คำสงวนไม่สามารถใช้เป็นตัวระบุที่กำหนดเองได้

การเปลี่ยนแปลงใด ๆ ในตัวแปรของตัวแปรหนึ่งจะเปลี่ยนตัวแปรของอีกตัวหนึ่ง เมื่อมีการประกาศวัตถุ ที่อยู่ของตำแหน่งหน่วยความจำจะถูกเรียก ซึ่งมักจะเป็นที่อยู่ของตำแหน่งหน่วยความจำแรกในพื้นที่สงวนที่มีข้อมูลทั้งหมดที่เกี่ยวข้องกับวัตถุ การจัดการใดๆ ของวัตถุนี้หมายถึงที่อยู่นี้ การเปรียบเทียบสองอินสแตนซ์ของอ็อบเจ็กต์ทำได้โดยการอ้างอิงของอินสแตนซ์เหล่านี้

ตัวอย่างโค้ด Java enum

เป็นกระบวนการที่เพิ่มฟังก์ชันการทำงานให้กับคลาสโดยไม่ต้องเขียนโค้ดทั้งหมดในคลาสนั้นใหม่ คลาสใหม่สืบทอดข้อมูลและวิธีการทั้งหมดของคลาสที่ได้รับมา จากนั้นจึงมีความจำเป็นที่คอนสตรัคเตอร์ที่ไม่มีพารามิเตอร์อยู่ในคลาสพาเรนต์ ตัวอย่างเช่น คุณสามารถใช้วิธีการอื่นในการวาดสี่เหลี่ยมทึบนอกเหนือจากที่กล่าวถึงแล้ว ตัวอย่างเช่น โดยการสร้างคลาสสี่เหลี่ยมใหม่ที่สืบทอดคลาสหลักสี่เหลี่ยม สำหรับข้อมูลของสี่เหลี่ยมผืนผ้านั้นจะต้องเปิดเผยต่อสาธารณะซึ่งขัดต่อหลักการห่อหุ้ม

วี ภาษาจาวาคำต่อไปนี้สงวนไว้ คีย์เวิร์ด

คำสงวน จริง, เท็จและ โมฆะไม่ใช่คีย์ แต่ไม่สามารถใช้เป็นตัวระบุในโปรแกรมได้

คำหลักสามารถแบ่งออกเป็นกลุ่ม:

วิธีแก้ไขคือกำหนดตัวแปรคลาสด้วยตัวดัดแปลงที่ได้รับการป้องกัน สมาชิกของคลาสที่ได้รับการป้องกันโดย "protected" สามารถเข้าถึงได้จากคลาสที่ได้รับ แต่ไม่ใช่จากคลาสอื่น คลิกในบริบทของแอปเพล็ตเพื่อเปิดใช้งาน หลายภาษาอนุญาตให้ส่งอาร์กิวเมนต์ตามค่าหรือที่อยู่ เนื่องจากไม่ทราบที่อยู่ที่แท้จริงของอาร์กิวเมนต์ของเมธอด เมธอดจึงไม่สามารถแก้ไขได้

โครงสร้างแบบมีเงื่อนไขคืออะไร?

ในกรณีของการส่งอาร์กิวเมนต์ไปยังที่อยู่ของเมธอด ตัวแปรอาร์กิวเมนต์จะถูกส่งไปยังเมธอด: การเปลี่ยนแปลงที่ทำกับค่าของตัวแปรโดยเมธอดจะมีผลทันทีและสิ้นสุด โครงสร้างแบบมีเงื่อนไขเรียกว่าคำสั่งเพื่อทดสอบว่าเงื่อนไขเป็นจริงหรือไม่ โครงสร้างตามเงื่อนไขเหล่านี้สามารถเชื่อมโยงกับโครงสร้างที่ทำซ้ำตามการใช้งานเงื่อนไข โครงสร้างเหล่านี้เรียกว่าโครงสร้างแบบวนซ้ำ

ชนิดข้อมูลดั้งเดิม

ไบต์, สั้น, int, ยาว, ถ่าน, ลอย, สองเท่า, บูลีน

ลูปและกิ่งก้าน

ถ้า, อย่างอื่น, เปลี่ยน, กรณี, ค่าเริ่มต้น, ในขณะที่, ทำ, ทำลาย, ดำเนินการต่อ, สำหรับ

ข้อยกเว้น

ลอง, จับ, ในที่สุด, โยน, ขว้าง

ขอบเขต ส่วนตัว ป้องกัน สาธารณะ
ประกาศนำเข้า

นำเข้า, แพ็คเกจ, คลาส, ส่วนต่อประสาน, ขยาย, นำไปใช้, คงที่, สุดท้าย, เป็นโมฆะ, นามธรรม, เนทีฟ

วิธีการทดสอบที่สั้นลง

ไวยากรณ์สำหรับนิพจน์นี้ เป็นไปได้ที่จะทำการทดสอบด้วยโครงสร้างที่มีความรุนแรงน้อยกว่ามาก ด้วยโครงสร้างต่อไปนี้ เรียกว่า ternary operator

  • เงื่อนไขต้องอยู่ระหว่างวงเล็บ
  • เมื่อเงื่อนไขเป็นจริง คำสั่งด้านซ้ายจะถูกดำเนินการ
  • เมื่อเงื่อนไขเป็นเท็จ คำสั่งที่ถูกต้องจะถูกดำเนินการ
เมื่อนิพจน์ทดสอบเท่ากับค่าใดค่าหนึ่งที่ตามหลังฟิลด์ รายการคำสั่งต่อไปนี้จะถูกดำเนินการ

การใช้งานภาษาพื้นฐาน

คีย์เวิร์ดเริ่มต้นนำหน้ารายการตัวดำเนินการที่จะดำเนินการหากนิพจน์ไม่เท่ากับค่าใดค่าหนึ่ง โครงสร้างเหล่านี้บางครั้งเรียกว่าคำสั่งซ้ำ ๆ หรือการวนซ้ำ วิธีทั่วไปที่สุดในการดำเนินการวนรอบคือการสร้างตัวนับและหยุดการวนซ้ำเมื่อตัวนับเกินค่าที่กำหนด

สร้าง ส่งคืน โทร

ใหม่ กลับมา นี้ สุดยอด

มัลติเธรด

ซิงโครไนซ์, ระเหย

คีย์เวิร์ดที่สงวนไว้
นัดพิเศษ

ตัวอย่างของ, enum, ยืนยัน, ชั่วคราว, เข้มงวดfp

สัญญาณการทำงาน

ป้ายแสดงการทำงานมีจุดประสงค์เพื่อบ่งชี้การดำเนินการทางคณิตศาสตร์ ตรรกะ และการดำเนินการอื่นๆ ตารางแสดงสัญญาณการทำงานที่ใช้บ่อยที่สุด

คำสั่งนี้รันรายการคำสั่งตราบเท่าที่ตรงตามเงื่อนไข อาจต้องใช้ค่าอย่างน้อยหนึ่งค่าในการวนรอบโดยไม่สิ้นสุดรอบ ไวยากรณ์สำหรับนิพจน์นี้คือ "ต่อเนื่อง" ซึ่งมักจะเกี่ยวข้องกับโครงสร้างแบบมีเงื่อนไข มิฉะนั้น เส้นระหว่างคำสั่งนี้กับจุดสิ้นสุดของลูปจะล้าสมัย

การสนทนาที่เกี่ยวข้องที่พบในฟอรัม

โชคดีที่ต้องขอบคุณคำสั่งแบบต่อเนื่อง คุณสามารถพิจารณาค่านี้แยกกัน แล้ววนซ้ำต่อไป! ในทางตรงกันข้าม อาจจำเป็นต้องหยุดการวนซ้ำก่อนเวลาอันควรสำหรับเงื่อนไขที่แตกต่างจากที่ระบุไว้ในส่วนหัวของลูป เราจะมีตัวระบุสามด้านที่คุณต้องเข้าใจ ตัวระบุที่ถูกต้อง: กฎที่คอมไพเลอร์ใช้เพื่อพิจารณาว่าชื่อนั้นถูกต้องหรือไม่ คุณควรทราบและนำไปใช้ในแอปพลิเคชันในอนาคตของคุณ ... ตัวระบุคือชื่อที่ระบุคลาส ตัวแปร หรือเมธอดในโปรแกรม

การดำเนินการ คำอธิบายสั้น
+ ส่วนที่เพิ่มเข้าไป
- การลบ
* การคูณ
/ แผนก
= งานที่มอบหมาย
++

เพิ่มขึ้น (เพิ่มขึ้น 1); x ++; เทียบเท่ากับ x = x + 1;

--

ลดลง (ลดลง 1); NS--; เทียบเท่ากับ x = x-1;

+= y + = x; เทียบเท่ากับ y = y + x;
-= y- = x; เทียบเท่ากับ y = y-x;
*= y * = x; เทียบเท่ากับ y = y * x;
/= y / = x; เทียบเท่ากับ y = y / x;
%= y% = x; เทียบเท่ากับ y = y% x;
== เท่ากับ
!= ไม่เท่ากับ
> มากกว่า
< เล็กลง
>= มากหรือเท่ากัน
<= น้อยกว่าหรือเท่ากับ
% เศษที่เหลือของการหารจำนวนเต็ม
&& ตรรกะและ
|| ตรรกะOR
! ปฏิเสธตรรกะไม่

บันทึก.

นี่คือกฎที่คุณต้องรู้ ในทางปฏิบัติ ไม่มีการจำกัดจำนวนอักขระที่ตัวระบุสามารถมีได้ คุณไม่สามารถใช้คีย์เวิร์ดเป็นตัวระบุในโปรแกรมของคุณได้

  • ไม่จำเป็นต้องขึ้นต้นด้วยตัวเลข
  • ด้านล่างนี้คือรายการคำหลักที่มีทั้งหมด
นี่คือตัวอย่างบางส่วนของ ID ที่ถูกต้อง

ต่อไปนี้คือตัวอย่างบางส่วนของตัวระบุที่ไม่ถูกต้อง คุณควรทราบสาเหตุ หากคุณยอมรับข้อตกลงเหล่านี้และเริ่มเขียนโค้ด ข้อตกลงเหล่านี้สามารถลดการทดสอบ การบำรุงรักษา และการปรับปรุงของคุณได้ และลองนึกถึงวงเล็บปีกกาด้วย บางครั้งพวกมันก็เขียนในบรรทัดเดียวกัน ซึ่งทำให้โค้ดอ่านไม่ออก

          1. แผนก
            • หากมีการหารจำนวนเต็มสองจำนวน เราก็จะได้ผลลัพธ์ของการหารจำนวนเต็ม:
              5/3 = 1 แต่การหารจำนวนเต็มที่เหลือคือ 5% 3 = 2
            • ถ้าหนึ่งในอาร์กิวเมนต์เป็นจำนวนจริง เราก็มีการหารปกติ:
              5 / 2.0 = 2.5
          2. เพิ่มขึ้นและลดลง

การเพิ่มขึ้นมีสองรูปแบบ: แบบฟอร์มคำนำหน้าแบบฟอร์ม postfix

นอกจากนี้ ชื่อมักจะต้องเป็นชื่อกริยาผสมกัน ... พวกมันเป็นเพียงตัวแปรอินสแตนซ์ส่วนตัว วิธีเดียวที่พวกเขาสามารถเข้าถึงได้จากนอกชั้นเรียนคือผ่านวิธีการของชั้นเรียน วิธีการที่เปลี่ยนค่าของคุณสมบัติเรียกว่า setters และวิธีการที่ได้รับค่าของคุณสมบัติจะเรียกว่า getters โปรดทราบว่าคุณไม่จำเป็นต้องมีตัวแปรชื่อ label ในชั้นเรียนของคุณ ชื่อคุณสมบัติจะอนุมานจากตัวรับและตัวตั้งค่า ไม่ใช่จากตัวแปรในคลาสของคุณ แบบจำลองเหตุการณ์มักใช้ในแอปพลิเคชันแบบกราฟิก เมื่อมีเหตุการณ์เช่นการคลิกเกิดขึ้น วัตถุอื่นๆ ที่อาจมีการรักษา เมื่อเหตุการณ์นั้นเกิดขึ้น จะได้รับข้อมูล

แบบฟอร์มคำนำหน้า

ขั้นแรก ตัวแปรจะเพิ่มขึ้น (หรือลดลง) หนึ่งตัว จากนั้นจะทำการคำนวณเพิ่มเติมด้วยค่าใหม่

int a = 5; int b = 5; int y = 10 + --a; int z = 10 + ++ b; System.out.println ("a =" + a); System.out.println ("b =" + b); System.out.println ("y =" + y); System.out.println ("z =" + z);

ผลลัพธ์จะเป็น:

a = 4
ข = 6
y = 14
z = 16

ในตัวอย่างนี้ ตัวแปร a จะลดลงก่อน 1, b เพิ่มขึ้นหนึ่ง จากนั้นนิพจน์สำหรับ y และ z จะถูกคำนวณ

วัตถุเหล่านี้เรียกว่าผู้ฟัง ชื่อเมธอดที่ใช้เพื่อเพิ่ม Listener ด้วยแหล่งเหตุการณ์ต้องใช้คำนำหน้า add ตามด้วยประเภท listener ชื่อเมธอดที่ใช้ในการลบ Listener ต้องใช้คำนำหน้า Remove ตามด้วยประเภท Listener โดยใช้กฎเดียวกันกับวิธีการบันทึกการเพิ่ม ประเภทของ Listener ที่จะเพิ่มหรือลบต้องส่งผ่านเป็นอาร์กิวเมนต์ของเมธอด โปรดจำไว้ว่าตัวระบุที่ถูกต้องสำหรับตัวแปรเป็นตัวระบุที่ถูกต้องสำหรับเมธอดหรือคลาสด้วย

แบบฟอร์ม Postfix

สำหรับแบบฟอร์ม postfix นิพจน์จะได้รับการประเมินด้วยค่าเดิมของตัวแปรก่อน และค่าของตัวแปรจะเพิ่มขึ้น (หรือลดลง) หนึ่งรายการหลังจากประเมินนิพจน์

int a = 5; int b = 5; int y = 10 + a--; int z = 10 + b ++; System.out.println ("a =" + a); System.out.println ("b =" + b); System.out.println ("y =" + y); System.out.println ("z =" + z);

ผลลัพธ์จะเป็น:
a = 4
ข = 6
y = 15
z = 15

กล่าวอีกนัยหนึ่ง คุณต้องยอมรับว่าตัวระบุนั้นถูกกฎหมาย แม้ว่าจะไม่เป็นไปตามมาตรฐานการตั้งชื่อก็ตาม เรากำลังจัดการกับบทที่สำคัญที่สุดบทหนึ่ง: เงื่อนไขเป็นแนวคิดพื้นฐานอีกอย่างหนึ่งของการเขียนโปรแกรม ในชั้นเรียน การอ่านและการดำเนินการจะดำเนินการตามลำดับ กล่าวคือ ทีละบรรทัด ด้วยเงื่อนไข เราสามารถจัดการสถานการณ์ต่างๆ ได้โดยไม่ต้องอ่านโค้ดทั้งหมด คุณจะตระหนักได้อย่างรวดเร็วว่าโครงการทั้งหมดของคุณเป็นเพียงลำดับและความสัมพันธ์ของเงื่อนไขและวัฏจักร

ให้ตรงไปที่หัวใจของเรื่อง ก่อนที่คุณจะสามารถสร้างและประเมินเงื่อนไข คุณจะต้องรู้ว่าเราจะใช้ "ตัวดำเนินการเชิงตรรกะ" ที่เรียกว่า "ตัวดำเนินการเชิงตรรกะ" สำหรับสิ่งนี้ ส่วนใหญ่จะใช้ในการตั้งค่าเพื่อประเมินกรณีที่เป็นไปได้ต่างๆ ทราบ.

นิพจน์จะได้รับการประเมินด้วยค่าเดิมของตัวแปร หลังจากประเมินนิพจน์สำหรับ yและ zตัวแปร NSลดลง 1 ตัวแปร NSจะเพิ่มขึ้นหนึ่ง

การดำเนินการเชิงตรรกะ

หากค่าแรกในการดำเนินการ "&&" เป็นเท็จ จะไม่มีการตรวจสอบค่าที่สองในการดำเนินการ "หรือ" ในทางกลับกัน หากค่าแรกเป็นจริง ค่าที่สองจะไม่ถูกตรวจสอบ

สำหรับช่วงหลัง คุณจะเข้าใจตัวอย่างที่จะให้ในตอนท้ายของบทนี้ดีขึ้น สิ่งนี้ทำให้คุณสามารถระบุเงื่อนไข "การต่อสู้แบบเดียวกับครั้งก่อน" ... ลองนึกภาพโปรแกรมที่ขอให้ผู้ใช้ป้อนจำนวนเต็มสัมพัทธ์ โครงสร้างแบบมีเงื่อนไขจะช่วยให้เราสามารถจัดการสถานการณ์ทั้งสามนี้ได้ โครงสร้างของเงื่อนไขเหล่านี้มีดังนี้

ลองใช้ตัวอย่างเล็ก ๆ ของเรา ในกรณีนี้ คลาสของเราจะแสดง "จำนวนบวก" มาอธิบายว่าเกิดอะไรขึ้น เมื่อคุณนำเสนอโครงสร้างตามเงื่อนไขแก่เรา คุณก็ใส่เหล็กดัดฟัน และไม่ได้ใส่ไว้ตรงนั้น อันที่จริง วงเล็บปีกกามีอยู่ในโครงสร้างตามเงื่อนไข "ปกติ" แต่เมื่อโค้ดภายในหนึ่งในนั้นประกอบด้วยเพียงบรรทัดเดียว วงเล็บปีกกาจะกลายเป็นตัวเลือกเสริม

ตารางความจริงของการดำเนินการ "&&", "||"

NS NS เอ&&บี A || NS
เท็จ เท็จ เท็จ เท็จ
เท็จ จริง เท็จ จริง
จริง เท็จ เท็จ จริง
จริง จริง จริง จริง

นี่คือตัวอย่าง

นี้เรียกว่าเยื้อง! มันจะมีประโยชน์มากในการหาคุณในโปรแกรมในอนาคตของคุณ ลองนึกภาพสองวินาทีว่าคุณมีโปรแกรม 700 บรรทัดพร้อมเงื่อนไข 150 ข้อและทุกอย่างถูกเขียนไว้ที่ขอบด้านซ้าย การแยกการทดสอบออกจากโค้ดเป็นเรื่องยาก ก่อนจะไปต่อ คุณควรรู้ว่าคุณไม่สามารถตรวจสอบความเท่าเทียมกันของสตริงได้! เราจะพูดถึงประเด็นนี้ในภายหลัง ตอนนี้เราจะใช้ตัวดำเนินการบูลีนที่เราเห็นในตอนเริ่มต้น ตรวจสอบว่าตัวเลขที่ระบุอยู่ในช่วงเวลาที่ทราบหรือไม่

ตัวอย่างเช่น จะตรวจสอบว่าจำนวนเต็มอยู่ระหว่าง 50 ถึง โอเปอเรเตอร์นี้แนะนำคุณเกี่ยวกับแนวคิดของจุดตัดของเซต ในที่นี้เรามีเงื่อนไขสองข้อ ซึ่งแต่ละเงื่อนไขกำหนดชุด ดังนั้น เงื่อนไขจะจัดกลุ่มตัวเลขที่เป็นของสองชุดนี้ใหม่ นั่นคือ ตัวเลขตั้งแต่ 51 ถึง 99 รวมอยู่ด้วย พิจารณาช่วงที่คุณต้องการกำหนด

บูลีน a = จริง; บูลีน b = จริง; บูลีน c = เท็จ; บูลีน d = เท็จ; System.out.println ("จริง && จริง =" + (a && b)); // จริง ผลลัพธ์จริง จริง System.out.println ("จริง && เท็จ =" + (a && c)); // true false ผลลัพธ์เป็น false System.out.println ("false && true =" + (c && a)); // ture เท็จผลลัพธ์เท็จ System.out.println ("false && frue =" + (c && d)); // ผลเท็จเท็จ false System.out.println ("true || true =" + (a || b)); // จริง ผลลัพธ์จริง true System.out.println ("true || false =" + (a || c)); // ผลลัพธ์เท็จจริง true System.out.println ("false || true =" + (c || a)); // ture เท็จผลลัพธ์จริง System.out.println ("false || false =" + (c || d)); // เท็จ เท็จ ผลลัพธ์ เป็น เท็จ

สวิตช์ส่วนใหญ่จะใช้เมื่อเราต้องการเงื่อนไข "อาหารตามสั่ง" ยกตัวอย่างแบบสำรวจที่มีคำถามสองข้อ: สำหรับคำถามแต่ละข้อ เราจะได้ 0 หรือ 10 คะแนน ซึ่งให้สามหมายเหตุและคะแนนที่เป็นไปได้สามข้อ เป็นต้น

มาอ่านบทนี้อีกครั้งในบางครั้ง ... ในกรณีนี้ เราใช้สวิตช์เพื่อหลีกเลี่ยงความไม่จำเป็นหากเกิดซ้ำ และทำให้โค้ดสว่างขึ้นเล็กน้อย นี่คือการดำเนินการที่ดำเนินการโดยนิพจน์นี้ คลาสจะประเมินนิพจน์หลังจากสวิตช์ มิฉะนั้นจะไปยังแท็บถัดไป และอื่นๆ เพื่อให้เข้าใจถึงประโยชน์ของคำแนะนำนี้มากขึ้น ให้ลบตัวแบ่งทั้งหมดออก และคอมไพล์โปรแกรมของคุณ เงื่อนไขไตรภาคค่อนข้างซับซ้อนและใช้ค่อนข้างน้อย ลักษณะเฉพาะของเงื่อนไขเหล่านี้คือมีตัวถูกดำเนินการสามตัวเกี่ยวข้อง แต่เงื่อนไขเหล่านี้ยังใช้เพื่อกำหนดข้อมูลให้กับตัวแปร

ผลลัพธ์จะเป็น:

จริง && จริง = จริง
จริง && เท็จ = เท็จ
เท็จ && จริง = เท็จ
เท็จ && เท็จ = เท็จ
จริง || จริง = จริง
จริง || เท็จ = จริง
เท็จ || จริง = จริง
เท็จ || เท็จ = เท็จ

เพจ JSP มีไวยากรณ์ที่รวมกัน: การรวมกันของไวยากรณ์มาตรฐานที่สอดคล้องกับข้อกำหนด HTML และไวยากรณ์ JSP ที่กำหนดโดยข้อมูลจำเพาะ Java Server Pages ไวยากรณ์ JSP กำหนดกฎสำหรับการเขียนหน้า JSP ซึ่งประกอบด้วยแท็ก HTML มาตรฐานและแท็ก JSP

โครงสร้างแบบนี้หน้าตาเป็นแบบนี้ ตกแต่งสิ่งที่เกิดขึ้น การกำหนดถูกต้อง: คุณสามารถใช้ตัวแปรสูงสุดได้ คุณยังสามารถทำการคำนวณก่อนที่จะมีอิทธิพลต่อค่าต่างๆ อย่าลืมว่าค่าที่คุณจะกำหนดให้กับตัวแปรต้องเป็นประเภทเดียวกับตัวแปรของคุณ นอกจากนี้ โปรดทราบด้วยว่าไม่มีอะไรหยุดคุณไม่ให้แทรกเงื่อนไข 3 มิติลงในเงื่อนไขไตรภาคอื่น

เงื่อนไขอนุญาตให้เรียกใช้โค้ดได้เพียงบางส่วนเท่านั้น ... หากบล็อกคำสั่งมีมากกว่าหนึ่งบรรทัด คุณต้องล้อมรอบด้วยวงเล็บปีกกาเพื่อระบุจุดเริ่มต้นและจุดสิ้นสุดของบล็อกคำสั่งอย่างชัดเจน เพื่อให้สามารถใส่เงื่อนไขได้ คุณต้องเปรียบเทียบตัวแปรโดยใช้ตัวดำเนินการบูลีน

หน้า JSP นอกจากแท็ก HTML แล้ว ยังมีแท็ก JSP ในหมวดหมู่ต่อไปนี้:

คำสั่ง JSP

คำสั่ง JSPให้ข้อมูลทั่วโลกเกี่ยวกับคำขอเฉพาะที่ส่งไปยังเซิร์ฟเวอร์และให้ข้อมูลที่จำเป็นระหว่างขั้นตอนการแปล คำสั่งจะถูกวางไว้ที่จุดเริ่มต้นของหน้า JSP ก่อนแท็กอื่นๆ ทั้งหมดเสมอ ดังนั้น พาร์เซอร์(parser) JSP เมื่อแยกวิเคราะห์ข้อความที่จุดเริ่มต้น เน้นคำสั่งส่วนกลาง ดังนั้น JSP Engine (รันไทม์ JSP) จะแยกวิเคราะห์โค้ดและสร้างเซิร์ฟเล็ตจาก JSP คำสั่งเป็นข้อความที่ส่งไปยังคอนเทนเนอร์ JSP

คุณสามารถใส่การเปรียบเทียบแบบบูลีนได้มากเท่าที่คุณต้องการในสถานะ บทบาทของการวนซ้ำคือการทำซ้ำหลาย ๆ ครั้ง โปรแกรมทั้งหมดหรือเกือบทั้งหมดจำเป็นต้องมีฟังก์ชันดังกล่าว เราจะใช้ลูปเพื่อให้โปรแกรมเริ่มต้นใหม่ตั้งแต่ต้น รอการดำเนินการเฉพาะของผู้ใช้ ดูชุดข้อมูล ฯลฯ

วนซ้ำทำงานตราบเท่าที่ตรงตามเงื่อนไข ดังนั้นเราจะใช้แนวคิดของบทที่แล้ว! ซึ่งหมายความว่าเกือบ "ตราบเท่าที่" จากนั้นเรามีเงื่อนไข: อนุญาตให้คุณหยุดการวนซ้ำ การวนซ้ำจะมีประโยชน์ก็ต่อเมื่อเราสามารถควบคุมมันได้ ดังนั้นจึงทำให้คำสั่งซ้ำเป็นจำนวนครั้งที่กำหนด

ไวยากรณ์ คำสั่ง JSPดังนี้

<%@ директива имяАтрибута="значение" %>

ไวยากรณ์งาน คำสั่งใน XML:

คำสั่ง JSPสามารถมีคุณลักษณะหลายอย่าง ในกรณีนี้ สามารถทำซ้ำคำสั่งสำหรับแต่ละแอตทริบิวต์ได้ ในขณะเดียวกันคู่รัก "ชื่อแอตทริบิวต์ = ค่า"สามารถวางไว้ภายใต้คำสั่งเดียวโดยมีช่องว่างเป็นตัวคั่น

คำสั่งมีสามประเภท:

  • หน้า (หน้า)
  • taglib (ไลบรารีแท็ก)
  • รวม (รวม)

คำสั่งหน้า JSP

คำสั่งหน้า JSPกำหนดคุณสมบัติของหน้า JSP ที่ส่งผลต่อนักแปล ลำดับของคุณลักษณะในคำสั่ง หน้าหนังสือไม่เป็นไร. การละเมิดไวยากรณ์หรือการมีอยู่ของแอตทริบิวต์ที่ไม่รู้จักส่งผลให้เกิดข้อผิดพลาดในการแปล ตัวอย่างของคำสั่ง หน้าหนังสือรหัสต่อไปนี้สามารถให้บริการ:

<%@ page buffer="none" isThreadSafe="yes" errorPage="/error.jsp" %>

คำสั่งหน้าประกาศว่าหน้า JSP นี้ไม่ได้ใช้บัฟเฟอร์ ผู้ใช้หลายคนสามารถเข้าถึงหน้า JSP นี้พร้อมกันได้ และหน้าแสดงข้อผิดพลาดชื่อ error.jsp.

คำสั่งหน้า JSPอาจมีข้อมูลเกี่ยวกับหน้า:

<%@ page info = "JSP Sample 1" %>

รายการแอตทริบิวต์คำสั่งที่เป็นไปได้ หน้าหนังสือนำเสนอในตาราง

ชื่อแอตทริบิวต์ความหมาย คำอธิบาย
ภาษา เส้น กำหนดภาษาที่ใช้ในสคริปต์เล็ตไฟล์ JSP นิพจน์ หรือไฟล์ที่รวมไว้ รวมถึงเนื้อหาของโค้ดที่แปลแล้ว ค่าเริ่มต้นคือ "java"
ยืดออก เส้น ระบุซูเปอร์คลาสสำหรับเซิร์ฟเล็ตที่สร้างขึ้น แอตทริบิวต์นี้ควรใช้อย่างระมัดระวัง เนื่องจากเป็นไปได้ว่าเซิร์ฟเวอร์กำลังใช้ซูเปอร์คลาสอยู่แล้ว
นำเข้า เส้น คำจำกัดความของแพ็คเกจที่จะนำเข้า เช่น
<%@ page import="java.util.* %>
การประชุม จริงหรือเท็จ ความหมาย จริง(ค่าเริ่มต้น) ระบุว่าตัวแปรที่กำหนดไว้ล่วงหน้า การประชุม(ประเภท HttpSession) ต้องถูกผูกไว้กับเซสชันที่มีอยู่ หากมี มิฉะนั้น เซสชันใหม่จะถูกสร้างขึ้นและผูกไว้ ความหมาย เท็จกำหนดว่าจะไม่ใช้เซสชันและพยายามเข้าถึงตัวแปร การประชุมจะทำให้เกิดข้อผิดพลาดเมื่อแปลหน้า JSP เป็น servlet
กันชน ไม่มีหรือขนาดของบัฟเฟอร์ในหน่วย kB ตั้งค่าขนาดบัฟเฟอร์สำหรับ JspWriter ค่าเริ่มต้นขึ้นอยู่กับการตั้งค่าเซิร์ฟเวอร์และไม่ควรเกิน 8 kB ถ้าค่าเป็น ไม่มีผลลัพธ์จะไปที่วัตถุโดยตรง ServletResponse
ออโต้ฟลัช จริงหรือเท็จ กำหนดว่าควรล้างบัฟเฟอร์โดยอัตโนมัติเมื่อล้นหรือเกิดข้อผิดพลาด ค่าเริ่มต้นคือ จริง
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

คำสั่ง JSP taglib

คำสั่ง JSP taglibประกาศว่าหน้า JSP ที่กำหนดใช้ไลบรารีแท็ก ระบุหน้า JSP โดยไม่ซ้ำกันด้วย URI และจับคู่คำนำหน้าแท็กซึ่งไลบรารีสามารถดำเนินการได้ หากคอนเทนเนอร์ไม่พบไลบรารีแท็ก จะเกิดข้อผิดพลาดในการแปลที่ร้ายแรง

คำสั่ง taglibมีไวยากรณ์ต่อไปนี้:

<%@ taglib uri="URI ของไลบรารีแท็กรวม"คำนำหน้า =" คำนำหน้าชื่อ" %>

คำนำหน้า " คำนำหน้าชื่อ"ใช้อ้างอิงถึงห้องสมุด ตัวอย่างการใช้ tag library mytags:

<%@ taglib uri="http://www.taglib/mytags" prefix="customs" %> . . .

ในตัวอย่างนี้ ไลบรารีแท็กมี URI "http: //www.taglib/mytags", สตริงถูกกำหนดเป็นคำนำหน้า ศุลกากรที่ใช้ในหน้า JSP เมื่อเข้าถึงองค์ประกอบของไลบรารีแท็ก

JSP รวมคำสั่ง

คำสั่ง JSP รวมอนุญาตให้คุณแทรกข้อความหรือโค้ดขณะแปลเพจ 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 ประกาศมีวัตถุประสงค์เพื่อกำหนดตัวแปรและเมธอดในภาษาสคริปต์ ซึ่งจะใช้ในหน้า JSP ในภายหลัง ไวยากรณ์ ประกาศมีลักษณะดังนี้:

<%! код Java %>

ประกาศอยู่ในบล็อกการประกาศและถูกเรียกในบล็อกนิพจน์ของหน้า JSP รหัสในบล็อกการประกาศมักจะเขียนด้วยภาษาจาวา แต่เซิร์ฟเวอร์แอปพลิเคชันสามารถใช้ไวยากรณ์ของสคริปต์อื่นได้ โฆษณาบางครั้งใช้เพื่อเพิ่มฟังก์ชันการทำงานเพิ่มเติมเมื่อทำงานกับข้อมูลไดนามิกที่ได้รับจากคุณสมบัติของคอมโพเนนต์ JavaBeans ตัวอย่างของ โฆษณาถูกนำเสนอในตาราง

ประกาศสามารถมีได้หลายบรรทัด เช่น ในโค้ดด้านล่างสำหรับคำนวณค่าของฟังก์ชัน ความจริง (int n)ซึ่งควรเท่ากับ 1 เมื่อ n น้อยกว่า 2 และ n! ด้วยค่าบวกของ n;

<%! public static int fact (int n) { if (n <= 1) return 1; else return n * fact (n - 1); } %>

ประกาศห้ามสร้างเอาต์พุตใด ๆ ให้เป็นเอาต์พุตมาตรฐาน ออก... ตัวแปรและเมธอดที่ประกาศในการประกาศได้รับการเริ่มต้นและพร้อมใช้งานสำหรับ scriptlets และอื่นๆ โฆษณาในขณะที่หน้า 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 นิพจน์ที่สั่งการได้ซึ่งเขียนด้วยภาษาสคริปต์ที่ระบุในการประกาศภาษา (โดยทั่วไปคือ Java) ผลลัพธ์ สำนวน JSP ซึ่งเป็นประเภท String ที่ต้องการจะถูกส่งไปยังเอาต์พุตสตรีมมาตรฐาน ออกโดยใช้วัตถุปัจจุบัน JspWriter... ถ้าผลลัพธ์คือ สำนวนหล่อไม่ได้ สตริงอาจเกิดข้อผิดพลาดในการแปลหากตรวจพบปัญหาในขั้นตอนการแปล หรือมีข้อยกเว้นเกิดขึ้น ClassCastExceptionหากตรวจพบความไม่สอดคล้องกันระหว่างการดำเนินการตามคำขอ การแสดงออกมีไวยากรณ์ต่อไปนี้:

<%= текст выражения %>

ไวยากรณ์ทางเลือกสำหรับ JSP สำนวนเมื่อใช้ XML:

ข้อความนิพจน์

คำสั่งดำเนินการ สำนวนในหน้า JSP จากซ้ายไปขวา ถ้า การแสดงออกปรากฏในแอตทริบิวต์รันไทม์มากกว่าหนึ่งรายการ จากนั้นจะรันจากซ้ายไปขวาในแท็กนั้น การแสดงออกต้องเป็นนิพจน์ที่สมบูรณ์ในสคริปต์เฉพาะ (โดยทั่วไปคือ Java)

สำนวนถูกดำเนินการในขณะที่โปรโตคอล HTTP กำลังทำงาน ค่านิพจน์จะถูกแปลงเป็นสตริงและรวมอยู่ในตำแหน่งที่เหมาะสมในไฟล์ JSP

นิพจน์มักใช้ในการคำนวณและแสดงการแสดงสตริงของตัวแปรและเมธอดที่กำหนดไว้ในบล็อกการประกาศเพจ JSP หรือได้มาจาก JavaBeans ที่สามารถเข้าถึงได้จาก JSP รหัสต่อไปนี้ สำนวนทำหน้าที่แสดงวันที่และเวลาของคำขอหน้า:

เวลาปัจจุบัน:<%= new java.util.Date () %>

เพื่อให้ง่ายขึ้น สำนวนมีตัวแปรที่กำหนดไว้ล่วงหน้าหลายตัวที่คุณสามารถใช้ได้ ตัวแปรที่ใช้บ่อยที่สุดคือ:

  • คำขอ HttpServletRequest;
  • การตอบสนอง HttpServletResponse;
  • เซสชัน HttpSession - เกี่ยวข้องกับคำขอ ถ้ามี;
  • ออกไป PrintWriter - เวอร์ชันบัฟเฟอร์ของประเภท JspWriter สำหรับการส่งข้อมูลไปยังไคลเอ็นต์