Cấu trúc điều khiển bổ sung 4 – BÀI GIẢNG 4: CẤU TRÚC LẶP 1/. Cấu trúc lặp:  Là cấu trúc cho phép – StuDocu

Tóm Tắt

BÀI GIẢNG 4:

CẤU TRÚC LẶP

1/. Cấu trúc lặp:

 Là cấu trúc cho phép thực hiện nhiều lần 1 lệnh / 1 nhóm lệnh theo biến đếm hoặc

theo điều kiện.

 Lệnh break : ngắt / thoát khỏi vòng lặp

o Khi gặp lệnh break bên trong một vòng lặp, vòng lặp ngay lập tức kết thúc và

điều khiển chương trình tiếp tục tại lệnh tiếp theo sau vòng lặp.

o Chúng ta có thể sử dụng lệnh break Java trong tất cả các loại vòng lặp như

vòng lặp for, vòng lặp while và vòng lặp do-while.

 Lệnh continue : tiếp tục lần lặp tiếp theo và bỏ qua các lệnh phía sau nó.

o Lệnh continue được sử dụng trong cấu trúc lặp khi ta cần chuyển đến bước lặp

tiếp theo của vòng lặp ngay lập tức. Nó có thể được sử dụng với vòng lặp for

hoặc vòng lặp while.

o Câu lệnh continue trong Java được sử dụng để tiếp tục vòng lặp. Nó tiếp tục

dòng hiện tại của chương trình và bỏ qua đoạn mã còn lại. Trong trường hợp

có vòng lặp bên trong, nó chỉ tiếp tục vòng lặp bên trong.

o Chúng ta có thể sử dụng lệnh continue của Java trong tất cả các loại vòng lặp

như vòng lặp for, vòng lặp while và vòng lặp do-while.

2/. Lệnh For : là cấu trúc lặp thực hiện theo biến đếm

Cú pháp:

for ( statement 1 ; statement 2 ; statement 3 )

{

// Kh i l nh đ c th c thiốệượự

}

C th :ụể

for ( khi to bin đmởạếế ; điu kinềệ ; Lnh tăng / gimệả )

{

// Kh i l nh đ c th c thiốệượự

}

o Statement 1 là lệnh gán giá trị ban đầu cho biến đếm (khởi tạo)

o Statement 2: là điều kiện thi hành của for.

o Statement 3: lệnh tăng / giảm biến đếm sẽ thực hiện sau mỗi lần thi hành khối lệnh.

Sinh viên xem ví dụ và lắng nghe giải thích

Ví dụ 1 : xuất ra các giá trị từ 0 đến 49

for (int i = 0; i < 50; i++)

{

Học tới đây _ 09/11/2021 _ Lớp 21DTH2B

2/. Lệnh while: là cấu trúc lặp theo điều kiện (với việc kiểm tra điều kiện được thực hiện

trước)

Cú pháp: thực hiện khối lệnh trong khi điều kiện còn đúng, dừng khi điều kiện sai.

while ( condition )

{

// Kh i l nh đ c th c thiốệượự

}

Ví dụ 5 : thực hiện 10 lần, in giá trị: 1, 2, …, 8, 9, 10. Dừng khi i = 11.

int i=1;

while (i<=10)

{

System.out(i);

i++;

}

3/. Lệnh do .. while: là cấu trúc lặp theo điều kiện (với việc kiểm tra điều kiện được thực

hiện sau)

Cú pháp: thực hiện khối lệnh trong khi điều kiện còn đúng, dừng khi điều kiện sai.

do

{

RC chọn Terminate/Disconnect All để dừng chương trình.

Ví dụ 8 :

public class VdDoWhile {

public static void main(String[] args)

{

int a = 1, sum = 0;

do

{

sum += a;

a++;

} while (a <= 10);

System.out(“Tổng từ 1 đến 10 là: ” + sum);

}

}

Kết quả:

Ví dụ 9 : phân biệt while và do … while.

While (kiểm tra đk trước) Do .. while (kiểm tra đk sau)

int x=0, i=10;

while (i<10)
{
x = x + i;
i++;
}
System. out .println(“x = ” + x);

int x=0, i=10;
do
{
x = x + i;
i++;
} while (i<10);
System. out .println(“x = ” + x);

Kt qu:ếả Kt qu:ếả

Bài tập mẫu 1 : Viết chương trình nhập vào 1 số nguyên n, thực hiện tính giá trị của biểu

thức sau:

Sn = 1 + ½ + 1/3 + …+ 1/n

import java.util;
public class Btm1 {

public static void main(String[] args)
{
Scanner s = new Scanner(System. in );
int i, n;
float sn = 0;
System. out .print(“Nh p s n: “ậố );
n = s();
for (i=1; i<=n; i++)
sn = sn + (1/( float )i);
System. out .format(“K t qu Sn: %”ếả , sn);
}
}

Bài tập mẫu 2 : Viết chương trình nhập vào 2 số nguyên a, b, xác định ước số chung lớn

nhất của (a, b).

Thuật toán xác định USCLN(a, b): trừ dần 2 số cho nhau đến khi a=b thì đó là uscln

import java.util;
public class Btm2 {

public static void main(String[] args)
{
Scanner s = new Scanner(System. in );
int a, b, uscln;
System. out .print(“Nh p s a: “ậố );
a = s();

System. out .print(“Nh p s b: “ậố );
b = s();

while (a!=b)
{
if (a>b)
a = a-b;
else

// tính s mũ 10ố
dem = dem * 10;
// tính th ng c a (s 10 / 8) ươủố
soDec /= 8;
}
System. out .println(“S H 8 là: “ốệ + soOct);
}
}

Bài tập mẫu 4 : Viết chương trình nhập vào 1 số nguyên x, xác định số x có phải là số

nguyên tố hay không?

Thuật toán:

Dựa vào định nghĩa của số nguyên tố (là số chỉ chia hết cho 1 và chính nó), ta sẽ có được thuật toán
kiểm nguyên tố đơn giản nhất:

 Kiểm tra các số từ 2 đến n – 1 , nếu n chia hết cho một trong những số đó thì n không phải là
số nguyên tố. Ngược lại thì n là số nguyên tố.
o Độ phức tạp thời gian (ĐPT) của thuật toán trên là O(n)

Tuy nhiên, giống như thuật toán đếm số ước của n, ta hoàn toàn có thể cải tiến để giảm ĐPT:

 Kiểm tra các số từ 2 đến √n , nếu n chia hết cho một trong những số đó thì n không phải là số
nguyên tố. Ngược lại thì n là số nguyên tố.
o ĐPT: O(√n)

import java.util;
public class Btm4 {
public static void main(String[] args)
{
Scanner s = new Scanner(System. in );
int i, x;
boolean kt= true ;
System. out .print(“Nh p s x: “ậố );
x = s();
i=2;
while (i<x)
{
if (x % i == 0)
{
kt = false ;
break ;
}
else
i++;
}
if (kt)
System. out .println(“S “ố + x + ” là s nguyên t “ốố );
else

System. out .println(“S “ố + x + ” không ph i s nguyên ảố
t “ố );
}
}

Bài tập 15 : Viết chương trình nhập vào số nguyên n (có kiểm tra giá trị n, n phải từ 1 đến

20) thực hiện tính n!.

import java.util;
public class vd99 {

public static void main(String[] args)
{
long gt=1;
int n, i;
Scanner s = new Scanner(System. in );
do
{ // ki m tra nh p n ph i t 1 đ n 20ểậảừế
System. out .print(“Nh p s n: “ậố );
n = s();
} while (n <=0 || n>20);

for (i=1; i<=n; i++) // tính giai th aừ
gt = gt * i;
System. out .printf(n + “! = ” + gt);
}
}

Kiểm tra 1: Viết chương trình nhập vào 1 số là số điện tiêu thụ ( sdtt ) , nhập vào 1 số là

định mức sử dụng ( dmsd ), thực hiện tính tiền điện phải trả theo mô tả sau:

 (sdtt < = dmsd): tính giá 600 / mỗi kwh

 (sdtt > dmsd) và (sdtt <= 2 * dmsd): tính giá 1000 cho số kwh vượt dmsd

 (sdtt > 2 * dmsd) và (sdtt <= 5 * dmsd): tính giá 3000 cho số kwh vượt 2 lần dmsd

 (sdtt > 5 * dmsd): tính giá 10000 cho số kwh vượt 5 lần dmsd

Yêu cầu:

1. Vẽ lưu đồ

2. Viết chương trình Java (có chú thích)

Thiếu: System.out(“Quí khách ph i tr : ” + stpt);ảả

Kiểm tra 2: Viết chương trình nhập vào 1 số nguyên n (có kiểm tra giá trị, n phải từ 1 đến

5), cho biết số n là số mấy: one, two, three, four, five.

Yêu cầu:

1. Vẽ lưu đồ

2. Viết chương trình Java (có chú thích)

import java.util;
public class Kiemtra2 {
public static void main(String[] args)
{
Scanner s = new Scanner(System. in );
int n;
do
{
System. out .print(“Nh p s n: “ậố );
n = s();
} while (n<=0 || n>5);

switch (n)
{
case 1:

System. out .print(“One”);
break ;
case 2:
System. out .print(“Two”);
break ;
case 3:
System. out .print(“Three”);
break ;
case 4:
System. out .print(“Four”);
break ;
case 5:
System. out .print(“Five”);
break ;

}
}
}