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 . เราต้องการเขียนโปรแกรมที่แสดงตัวอักษรAs 5 ตัวในบรรทัดเดียว ในการทำเช่นนี้เราต้องวนซ้ำอีกครั้ง นี่คือลักษณะของรหัส:
| รหัส | คำอธิบาย |
|---|---|
|
แทนprintln()เราจะใช้print(). มิฉะนั้น ตัวอักษรแต่ละตัวA จะลงท้ายด้วยบรรทัดที่แยกจากกัน เอาต์พุตหน้าจอจะเป็น: |
ภารกิจที่ 3 . เราต้องการแสดงรูปสี่เหลี่ยมผืนผ้าที่ประกอบด้วยตัวอักษรAs สี่เหลี่ยมผืนผ้าควรประกอบด้วย 4 แถว 5 คอลัมน์ เพื่อให้บรรลุผล ตอนนี้เราต้องการการวนซ้ำที่ซ้อนกัน เราจะใช้ตัวอย่างแรกของเรา (ตัวอย่างที่เราส่งออก 4 บรรทัด) และแทนที่รหัสสำหรับการส่งออกหนึ่งบรรทัดด้วยรหัสจากตัวอย่างที่สอง
| รหัส | คำอธิบาย |
|---|---|
|
วงนอกเป็นสีม่วง ใช้nตัวแปรเพื่อนับจำนวนการวนซ้ำของลูป วงในเป็นสีเขียว ใช้ mตัวแปรเพื่อนับจำนวนการวนซ้ำ เราต้องย้ายเคอร์เซอร์ไปที่บรรทัดถัดไปอย่างชัดเจนหลังจากวงในเสร็จสิ้น มิฉะนั้นตัวอักษรทั้งหมดที่โปรแกรมพิมพ์จะจบลงในบรรทัดเดียว เอาต์พุตหน้าจอจะเป็น: |
ลูปชั้นนอกและลูปในต้องใช้ตัวแปรที่แตกต่างกันในการนับจำนวนการวนซ้ำ เราต้องเพิ่มSystem.out.println()คำสั่งหลังจากวงใน เนื่องจากวงนั้นแสดงตัวอักษรAs ในบรรทัดเดียวกัน เมื่อตัวอักษรบนบรรทัดปรากฏขึ้น บางคนต้องเลื่อนเคอร์เซอร์ไปที่บรรทัดใหม่
5. การเปรียบเทียบลูป Java กับ Pascal
พวกคุณหลายคนเรียนภาษาปาสคาลในโรงเรียนมัธยม เพื่อให้คุณเข้าใจเนื้อหาที่นี่ได้ง่ายขึ้น ลองดูการเปรียบเทียบwhileลูปที่เขียนด้วยภาษา Pascal และ Java หากคุณไม่รู้จักภาษาปาสคาล ให้ข้ามส่วนนี้ไป
| ปาสคาล | ชวา |
|---|---|
|
|
|
|
|
|
|
|
|
|
GO TO FULL VERSION