CodeGym /จาวาบล็อก /สุ่ม /Java ในขณะที่วนซ้ำ
John Squirrels
ระดับ
San Francisco

Java ในขณะที่วนซ้ำ

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

วัฏจักรมีไว้เพื่ออะไร?

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

While (number of steps less than 10,000)
{
Count steps
}

Send notification "you have reached the goal"
นั่นคือ ทันทีที่จำนวนก้าวเท่ากับที่ระบุในเงื่อนไข โปรแกรมจะออกจากวงจรนี้และส่งการแจ้งเตือน หรืออีกตัวอย่างหนึ่ง ลองนึกภาพว่าคุณต้องจำบทกวี (หรือสุนทรพจน์) บทกวีถือเป็นการจดจำหากคุณอ่านสามครั้งติดต่อกันโดยไม่แอบมอง หากคุณนึกภาพโปรแกรมที่จับภาพความพยายามของคุณในการท่องบทกวี มันจะต้องใช้การวนซ้ำด้วย:

While (success < 3)
learn a poem
มีการใช้โครงสร้างที่คล้ายกันนี้ในแอปเพื่อการศึกษาสมัยใหม่ทั้งหมดที่ใช้ เช่น ในการเรียนรู้ภาษาหรือเล่นเครื่องดนตรี

ลูป while และโครงสร้าง

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

while(condition == true) {
    // statement or loop body
}
เงื่อนไขต้องเป็นนิพจน์บูลีน นั่นคือเงื่อนไขที่สามารถพูดได้ว่าเป็นจริงหรือเท็จ นี่คือตัวอย่างบางส่วนของนิพจน์บูลีน:

s != "exit";
a > 5;
true;
เนื้อหาของลูปจะถูกดำเนินการตราบเท่าที่นิพจน์เงื่อนไขเป็นจริง เมื่อเงื่อนไขกลายเป็นเท็จ การควบคุมจะถูกถ่ายโอนไปยังบรรทัดของโค้ดที่อยู่หลังลูป หากใช้เพียงคำสั่งเดียวในลูป ก็สามารถละเว้นวงเล็บปีกกาได้ (แต่เป็นการดีกว่าที่จะไม่ทำเช่นนี้) นิพจน์เชิงตรรกะจะได้รับการประเมินก่อนการเริ่มต้นของลูป whileจากนั้นทุกครั้งก่อนที่จะดำเนินการคำสั่งซ้ำถัดไป

ในขณะที่ตัวอย่างลูป

มาเขียนโปรแกรมหาผลรวมตัวเลขทั้งหมดตั้งแต่ 1 ถึง 10 โดยใช้ ลูป while :

public class WhileTest0 {
   public static void main(String[] args) {
       int i = 0;
       int sum = 0;
   //while loop     
   while (i < 11) {
           sum = sum + i;
           i++;
       }
       System.out.println(sum);
   }
}
ผลลัพธ์คือ:
55
เราจำเป็นต้องคำนวณผลรวมของตัวเลขทั้งหมดตั้งแต่ 1 (หรือจากศูนย์ก็ได้ ไม่สำคัญ) ถึง 10 เราทำให้ผลรวมเริ่มต้นและองค์ประกอบแรกเท่ากับศูนย์ และเราจะเพิ่มองค์ประกอบทีละหนึ่งในแต่ละรอบของ ห่วง เราจะหาผลรวมต่อไปจนกว่าอาร์กิวเมนต์จะเท่ากับ 10 (นั่นคือ น้อยกว่า 11 เราสามารถเขียนเงื่อนไขได้เหมือนกันi <= 10 ) ลองใช้ Java ในขณะที่ตัวอย่างลูป อื่น เราจะเขียนโปรแกรมโดยให้ผู้ใช้ป้อนจำนวนเต็มบวก หากป้อนเลขศูนย์หรือจำนวนลบ โปรแกรมควรรายงานสิ่งนี้และทำงานให้เสร็จ

import java.util.Scanner;

public class WhileTest {
   public static void main(String[] args) {
       int positiveNumber = 1;
       Scanner scanner = new Scanner(String.valueOf(positiveNumber));
       while (positiveNumber > 0) {
           Scanner sc = new Scanner(System.in);
           System.out.println("Enter positive number:");
           positiveNumber = sc.nextInt();
           System.out.println("ok, next");
       }
       System.out.println("The number should be positive");
   }
}
คุณสามารถปรับปรุงโปรแกรมและเพิ่มเข้าไปได้ เช่น ตรวจสอบว่าผู้ใช้ป้อนตัวเลขทั้งหมดและไม่ใช่อักขระอื่นหรือไม่ หรือตัวเลขนั้นเป็นจำนวนเต็ม

ทำในขณะที่วนซ้ำ

ลูป whileแบบคลาสสิกตามตัวอย่างด้านบนจะตรวจสอบทันทีเพื่อดูว่าเงื่อนไขเป็นจริงหรือไม่ ดังนั้นจึงสามารถเรียกได้ว่าเป็นวัฏจักรที่มีเงื่อนไขเบื้องต้น ลู ป whileมีพี่น้อง do- while ลูปที่มี postcondition นั่นคือ ก่อนการทดสอบความจริงของเงื่อนไขจะเกิดขึ้น ลูปดังกล่าวจะถูกดำเนินการอย่างน้อยหนึ่งครั้ง:

do {
     // Loop body - periodically executed statement(s)
}while(Boolean expression);
ดังนั้นตัวอย่างแรกที่มีการวนซ้ำจะมีลักษณะดังนี้:

public class WhileTest0 {
   public static void main(String[] args) {
       int i = 0;
       int sum = 0;
       do
        {
           sum = sum + i;
           i++;
       } while (i < 11);
       System.out.println(sum);
   }
}

วัฏจักรที่ไม่มีที่สิ้นสุด

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

public class EndlessLoop {
    public static void main(String[] args) {
        int i = 0;
        while (true) {
            System.out.println(i++);
        }
    }
}
เพื่อเสริมสิ่งที่คุณได้เรียนรู้ เราขอแนะนำให้คุณดูบทเรียนวิดีโอจากหลักสูตร Java ของเรา
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION