1. วนลูปในชีวิตของเรา
บ่อยครั้งที่ชีวิตของเราต้องการให้เราทำสิ่งเดียวกันหลายครั้ง ตัวอย่างเช่น สมมติว่าฉันต้องการสแกนเอกสารที่ประกอบด้วยหน้าจำนวนมาก ที่เราทำซ้ำขั้นตอนเดิมซ้ำแล้วซ้ำอีก:
- ใส่หน้าแรกในเครื่องสแกน
- กดปุ่มสแกน
- วางหน้าถัดไปบนเครื่องสแกน
นี่เป็นเรื่องยากที่จะทำด้วยตนเอง คงจะดีไม่น้อยหากกระบวนการนี้สามารถทำให้เป็นแบบอัตโนมัติได้
หรือพิจารณาตัวอย่างอื่น: สมมติว่าฉันต้องการทำเครื่องหมายอีเมลที่ยังไม่ได้อ่านทั้งหมดในกล่องจดหมายของฉันว่าเป็นสแปม กาลครั้งหนึ่งฉันต้องเลือกอีเมลทีละฉบับและทำเครื่องหมายว่าเป็นสแปม
แต่โปรแกรมเมอร์ขี้เกียจ ดังนั้นพวกเขาจึงทำกระบวนการนี้โดยอัตโนมัติเมื่อนานมาแล้ว ตอนนี้คุณเพียงแค่เลือกรายการตัวอักษรใดก็ได้แล้วคลิก "ทำเครื่องหมายว่าเป็นสแปม" จากนั้นไคลเอ็นต์อีเมลของคุณก็จะเรียกใช้ผ่านรายการและย้ายอีเมลแต่ละฉบับไปยังโฟลเดอร์สแปม
เราจะพูดอะไรที่นี่ สะดวกมากเมื่อคอมพิวเตอร์หรือโปรแกรมสามารถดำเนินการที่ซ้ำซากจำเจนับร้อยนับพันได้ด้วยคลิกเดียว และตอนนี้คุณจะได้เรียนรู้วิธีการทำเช่นนี้ด้วย
2. while
วนซ้ำ
คำสั่ง if-else ช่วยขยายขีดความสามารถในการเขียนโปรแกรมของเราอย่างมาก ทำให้สามารถเขียนโปรแกรมที่ดำเนินการต่าง ๆ ในสถานการณ์ต่าง ๆ ได้ แต่มีอีกสิ่งหนึ่งที่จะทำให้โปรแกรมของเรามี ประสิทธิภาพมากขึ้นตามลำดับ - ลูป
Java มีลูป 4 ชนิด: while
, for
, for-each
และdo-while
. ตอนนี้เราจะเจาะลึกถึงสิ่งแรกเหล่านี้
การwhile
วนซ้ำนั้นง่ายมาก ประกอบด้วยสองส่วนเท่านั้น: condition และ loop body ตัวลูปถูกดำเนินการซ้ำแล้วซ้ำอีกตราบเท่าที่มีtrue
เงื่อนไข โดยทั่วไปแล้วwhile
ลูปจะมีลักษณะดังนี้:
while (condition)
statement;
while
การวนซ้ำด้วยคำสั่งเดียว
while (condition)
{
block of statements
}
while
การวนซ้ำด้วยบล็อกของคำสั่ง
มันง่ายมาก คำสั่งหรือบล็อกของคำสั่ง จะดำเนินการ ซ้ำแล้วซ้ำอีกตราบเท่าที่เงื่อนไขการวนซ้ำเท่ากับtrue
นี่คือวิธีการทำงาน: ขั้นแรกเงื่อนไขจะถูกตรวจสอบ หากเป็นจริงเนื้อความของลูปจะถูกดำเนินการ ( คำสั่งหรือบล็อกของคำสั่ง ) จากนั้นเงื่อนไขจะถูกตรวจสอบอีกครั้งและตัวลูปจะถูกดำเนินการอีกครั้ง ไปเรื่อยๆจนกว่าเงื่อนไขจะเป็นเท็จ
ถ้าเงื่อนไขเป็นจริงเสมอ โปรแกรมจะไม่หยุดทำงาน มันจะติดอยู่ในลูปอย่างถาวร
หากเงื่อนไขเป็นเท็จ ในครั้งแรกที่มีการตรวจสอบเนื้อความของลูปจะไม่ถูกดำเนินการแม้แต่ครั้งเดียว
3. ตัวอย่างของลูป
ต่อไปนี้คือตัวอย่างการใช้งานจริงของลูปที่ใช้งานจริง
รหัส | คำอธิบาย |
---|---|
|
5 บรรทัดจะปรากฏขึ้นบนหน้าจอ:
|
รหัส | คำอธิบาย |
---|---|
|
10 บรรทัดจะแสดงบนหน้าจอ:
|
รหัส | คำอธิบาย |
---|---|
|
โปรแกรมอ่านตัวเลขจากแป้นพิมพ์ตราบเท่าที่ป้อนตัวเลข |
รหัส | คำอธิบาย |
---|---|
|
โปรแกรมจะพิมพ์ตัวอักษรบนหน้าจอไม่รู้จบC |
รหัส | คำอธิบาย |
---|---|
|
โปรแกรมจะอ่านบรรทัดจากแป้นพิมพ์
จนกว่า |
ในตัวอย่างก่อนหน้านี้equals()
เมธอดนี้ใช้เพื่อเปรียบเทียบสตริง ถ้าสตริงเท่ากัน ฟังก์ชันจะคืนtrue
ค่า หากสตริงไม่เท่ากันก็จะคืนfalse
ค่า
4. วนซ้ำภายในลูป
เมื่อคุณได้เรียนรู้เกี่ยวกับข้อความแสดงเงื่อนไข คุณพบว่าคุณสามารถใช้คำสั่งเหล่านี้เพื่อปรับใช้ตรรกะที่ซับซ้อนได้โดยการรวมข้อความแสดงเงื่อนไขหลาย ๆ คำสั่งเข้าด้วยกัน กล่าวอีกนัยหนึ่งโดยใช้if
คำสั่งภายในif
คำสั่ง
คุณสามารถทำสิ่งเดียวกันกับลูป ในการเขียนลูปภายในลูป คุณต้องเขียนลูปที่สองภายในเนื้อหาของลูปแรก มันจะมีลักษณะดังนี้:
while (condition for outer loop)
{
while (condition for inner loop)
{
block of statements
}
}
while
วนซ้ำ (พร้อมกลุ่มคำสั่ง ) ภายในwhile
วง อื่น
ลองดูสามงาน
ภารกิจที่ 1 . สมมติว่าเราต้องการเขียนโปรแกรมแสดงคำMom
บนหน้าจอ 4 ครั้ง ลูปคือสิ่งที่เราต้องการ และรหัสของเราจะมีลักษณะดังนี้:
รหัส | คำอธิบาย |
---|---|
|
4 บรรทัดจะแสดงบนหน้าจอ:
|
ภารกิจที่ 2 . เราต้องการเขียนโปรแกรมที่แสดงตัวอักษรA
s 5 ตัวในบรรทัดเดียว ในการทำเช่นนี้เราต้องวนซ้ำอีกครั้ง นี่คือลักษณะของรหัส:
รหัส | คำอธิบาย |
---|---|
|
แทนprintln() เราจะใช้print() . มิฉะนั้น ตัวอักษรแต่ละตัวA จะลงท้ายด้วยบรรทัดที่แยกจากกัน เอาต์พุตหน้าจอจะเป็น:
|
ภารกิจที่ 3 . เราต้องการแสดงรูปสี่เหลี่ยมผืนผ้าที่ประกอบด้วยตัวอักษรA
s สี่เหลี่ยมผืนผ้าควรประกอบด้วย 4 แถว 5 คอลัมน์ เพื่อให้บรรลุผล ตอนนี้เราต้องการการวนซ้ำที่ซ้อนกัน เราจะใช้ตัวอย่างแรกของเรา (ตัวอย่างที่เราส่งออก 4 บรรทัด) และแทนที่รหัสสำหรับการส่งออกหนึ่งบรรทัดด้วยรหัสจากตัวอย่างที่สอง
รหัส | คำอธิบาย |
---|---|
|
วงนอกเป็นสีม่วง ใช้n ตัวแปรเพื่อนับจำนวนการวนซ้ำของลูป วงในเป็นสีเขียว ใช้ m ตัวแปรเพื่อนับจำนวนการวนซ้ำ เราต้องย้ายเคอร์เซอร์ไปที่บรรทัดถัดไปอย่างชัดเจนหลังจากวงในเสร็จสิ้น มิฉะนั้นตัวอักษรทั้งหมดที่โปรแกรมพิมพ์จะจบลงในบรรทัดเดียว เอาต์พุตหน้าจอจะเป็น:
|
ลูปชั้นนอกและลูปในต้องใช้ตัวแปรที่แตกต่างกันในการนับจำนวนการวนซ้ำ เราต้องเพิ่มSystem.out.println()
คำสั่งหลังจากวงใน เนื่องจากวงนั้นแสดงตัวอักษรA
s ในบรรทัดเดียวกัน เมื่อตัวอักษรบนบรรทัดปรากฏขึ้น บางคนต้องเลื่อนเคอร์เซอร์ไปที่บรรทัดใหม่
5. การเปรียบเทียบลูป Java กับ Pascal
พวกคุณหลายคนเรียนภาษาปาสคาลในโรงเรียนมัธยม เพื่อให้คุณเข้าใจเนื้อหาที่นี่ได้ง่ายขึ้น ลองดูการเปรียบเทียบwhile
ลูปที่เขียนด้วยภาษา Pascal และ Java หากคุณไม่รู้จักภาษาปาสคาล ให้ข้ามส่วนนี้ไป
ปาสคาล | ชวา |
---|---|
|
|
|
|
|
|
|
|
|
|
GO TO FULL VERSION