Viết chương trình nhập vào giá trị của n với n
VIẾT CHƯƠNG trình nhập vào giá trị của n(n<5) nếu người dùng nhập sai thì phài nhập lại. Sử dụng câu While ...do...
Trả lời (1)
-
Cấu trúc vòng lặp khiến chương trình thực hiện lặp đi lặp lại một chuỗi các câu lệnh cho đến khi không còn thõa mãn một điều kiện nào đó.
Ví dụ:
int main() { //do A //do B 0 or more times //do C }
Như vậy, chúng ta hiểu rằng có một cấu trúc vòng lặp được đặt tại B, nó có thể bắt buộc chương trình thực hiện công việc B 1 lần, hoặc cũng có thể thực hiện công việc B vô số lần mà không thể chuyển sang thực hiện công việc C sau đó. Số lần thực hiện công việc B nó sẽ phụ thuộc vào biểu thức điều kiện được đặt trong cấu trúc vòng lặp.
Mình lấy một ví dụ trong đời sống hằng ngày. Sinh viên A đăng kí học môn lập trình C++ tại trường đại học, nếu sinh viên A không đủ điểm để qua môn học này thì sinh viên A sẽ phải học lại. Trong trường hợp sinh viên A phải học lại lần thứ 2, chúng ta lại nói rằng nếu sinh viên A không đủ điểm qua môn học này thì sinh viên A phải học lại... Vậy việc sinh viên A học lại là công việc sẽ được lặp đi lặp lại nhiều lần trong khi điều kiện sinh viên A đủ điểm để qua môn vẫn còn sai.
While statements
While statement là cấu trúc vòng lặp đơn giản nhất trong số các kiểu vòng lặp cơ bản mà ngôn ngữ C++ cung cấp.
while (expression) { statements; }
Vòng lặp while được định nghĩa bởi từ khóa while. Một khi vòng lặp while được thực thi, biểu thức điều kiện trong while sẽ được đánh giá. Nếu biểu thức điều kiện cho giá trị đúng, các câu lệnh trong khối lệnh của vòng lặp while sẽ được thực thi.
Trong trường hợp chúng ta chỉ thực hiện 1 câu lệnh khi biểu thức điều kiện đúng, chúng ta có thể bỏ cặp dấu ngoặc nhọn đi.
while (expression) statement;
Nhưng mình không khuyến khích điều này.
Khác với if statement, một khi kết thúc 1 lần lặp của vòng lặp while, chương trình sẽ quay lên lại vị trí bắt đầu vòng lặp while để đánh giá lại biểu thức điều kiện, nếu biểu thức điều kiện vẫn còn cho giá trị đúng, các câu lệnh trong khối lệnh của vòng lặp while được thực hiện lại.
Ví dụ:
int main() { int score = 0; while (score < 4) { cout << "Learn C++ programming language..." << endl; cout << "Enter your final score: "; cin >> score; //new score } cout << "Congratulation! You passed the exam" << endl; system("pause"); return 0; }
Trong ví dụ trên, đến khi nào biến score không còn thõa mãn điều kiện (score < 4) thì vòng lặp while mới kết thúc. Chúng ta cùng xem kết quả chương trình:
Khi số điểm được nhập vào là 10, ngay lập tức mệnh đề (score < 4) được đánh giá là false, vòng lặp ngừng thực thi ngay sau đó.
Với vòng lặp while, chúng ta không thể biết trước số lần lặp lại khối công việc. Chúng ta chỉ biết rằng, vòng lặp while sẽ ngừng thực thi khi nào biểu thức điều kiện cho giá trị false.
Chúng ta có thể sử dụng thêm một biến để đếm số lần thực hiện khối lệnh của vòng lặp while:
int score = 0; int count = 0; while (score < 4) { count++; cout << "Learn C++ programming language..." << endl; cout << "Enter your final score: "; cin >> score; //new score } cout << "Congratulation! You passed the exam after " << count << " times" << endl;
Infinite loops
Vòng lặp vô tận xảy ra trong trường hợp không có sự tác động đến biểu thức điều kiện của vòng lặp while và nó luôn luôn đúng. Ví dụ:
int count = 0; while (count < 10) { cout << count << " "; }
Biến count trong trường hợp này không bị ai tác động đến giá trị, nên nó vẫn là 0 và luôn bé hơn 10. Dó đó, điều kiện luôn luôn đúng và vòng lặp không thể kết thúc được.
Chúng ta có thể cố ý khai báo vòng lặp vô hạn bằng cách sau:
while (true) { //This loop will be executed forever }
Cách duy nhất để thoát ra khỏi vòng lặp vô tận là sử dụng từ khóa break, return, goto,...
Loop variables
Thông thường, chúng ta muốn vòng lặp thực hiện công việc trong một số lần có giới hạn. Để làm điều này, chúng ta thường sử dụng thêm các biến vòng lặp (loop variable), những biến này thường được sử dụng cho mục đích đếm số lần thực hiện khối lệnh của vòng lặp.
Mình lấy ví dụ chương trình đếm ngược từ 10 về 0 như sau:
int count = 10; while (count >= 0) { _sleep(1000); //stop 1000 miliseconds if (count == 0) cout << "Finished" << endl; else cout << count << " "; count--; }
Kết quả:
10 9 8 7 6 5 4 3 2 1 Finished
Tại cuối vòng lặp, mình thực hiện trừ giá trị của biến count đi 1, điều này sẽ dẫn đến mệnh đề (count >= 0) sẽ sai trong tương lai. Như vậy, vòng lặp while này có điểm dừng.
Nest while loops
Cũng tương tự như if statement hay switch case statement, chúng ta có thể đặt vòng lặp while bên trong khối lệnh của vòng lặp while khác.
int outer = 1; while (outer <= 5) { int inner = 1; while (inner <= 5) { cout << inner << " "; inner++; } cout << endl; // print a newline at the end of each row outer++; }
Cứ mỗi lần lặp của vòng lặp while ngoài, chương trình lại thực hiện toàn bộ vòng lặp while trong, sau đó thực hiện tăng biến outer lên 1 giá trị. Kết quả chương trình sẽ là:
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
Tổng kết
Tìm hiểu về vòng lặp while giúp chúng ta định hình tư duy về cấu trúc vòng lặp trong ngôn ngữ C/C++. Cấu trúc vòng lặp while khá ngắn gọn, dễ hiểu. Chúng ta thường sử dụng vòng lặp while cho các trường hợp số lần lặp lại công việc là chưa biết trước.
bởi nguyễn thịnh 29/10/2018Like (0) Báo cáo sai phạm
Nếu bạn hỏi, bạn chỉ thu về một câu trả lời.
Nhưng khi bạn suy nghĩ trả lời, bạn sẽ thu về gấp bội!
Lưu ý: Các trường hợp cố tình spam câu trả lời hoặc bị báo xấu trên 5 lần sẽ bị khóa tài khoản
Các câu hỏi mới
-
+ Các ước của n
+ Số lượng các ước của n
+ Tổng các ước của n
+ Xét tổng đó có phải là số hoàn hảo?
29/11/2022 | 0 Trả lời
-
Viết chương trình nhập vào chiều, chiều rông hình chữ nhật và nhập vào cạnh của hình vuông. Thông báo ra màn hình diện tích hình nào lớn hơn.
30/11/2022 | 0 Trả lời
-
vViết chương trình nhập 3 số a,b,h hãy biết só lớn nhất trong 3 số đó
07/12/2022 | 0 Trả lời
-
viết chương trình nhập vào hai số a,b .kiểm tra xem a ,b là số âm hay dương,chẳn hay lẻ.kiểm tra xem a có chia hết cho b hay không.kiểm tra xem a,b có chia hết cho 3 hay không
07/12/2022 | 0 Trả lời
-
Tìm input, output và mô tả thuật toán bài sau: xác định một số tự nhiên x bất kì để chứng minh là số chẵn không?
09/12/2022 | 0 Trả lời
-
+ Tính n!
+ Nhập số x từ bàn phím.Tính nx
14/12/2022 | 0 Trả lời
-
viết chương trình giải phương trình bậc nhất ax=b.Với a,b nhập bằng bàn phím Tin
17/12/2022 | 0 Trả lời
-
Cho x và y là 2 độ dài 2 cạnh của một hình chữ nhật. Viết chương trình so sánh 2 giá trị x, y và thông báo nó là hình vuông hay hình chữ nhật thường
18/12/2022 | 0 Trả lời
-
tại sao nguười ta không viết chương trình bằng ngôn ngữ máy?
19/12/2022 | 0 Trả lời
-
cú pháp khai báo biến cho ví dụ khai báo bến trong pascal
20/12/2022 | 0 Trả lời
-
tính quãng đường tào hỏa đi được trong thời gian t vận tốc v
21/12/2022 | 0 Trả lời
-
Em hãy xác định INPUT, OUTPUT và mô tả thuật toán của bài toán nhập vào 2 số nguyên dương a, b và in ra kết quả số a nếu a lớn hơn b và ngược lại in kết quả b. (Ví dụ : nhập 20, 9 in ra 20 ngược lại nhập 9,20 in ra 20).
25/12/2022 | 0 Trả lời
-
Viết chương trình hoàn chỉnh sử dụng câu lệnh điều kiện thực hiện nhập từ bàn phím giá trị của biến nguyên a và kiểm tra nếu a là số lẻ thì tính và in ra màn hình diện tích hình vuông với độ dài cạnh là 2a không thì đi tính chu vi hình vuông với độ dài cạnh là 2a?
Mô tả lại thuật toán giải bài toán trên
28/12/2022 | 0 Trả lời
-
Viết chương trình nhập vào một số nguyên a bất kỳ. Kiểm tra xem số a là số chẵn hay số lẻ. Nếu là số chẵn, tăng giá trị của a thêm 10 đơn vị; Nếu là số lẻ, giảm giá trị của a 10 đơn vị.
30/12/2022 | 0 Trả lời
-
viết công thức tính C=2/3*3/4*4/5....*n/n+1 (n>0)
31/01/2023 | 0 Trả lời
-
Viết chương trình tính tổng: S=1+3+5+...+999
09/02/2023 | 0 Trả lời
-
S=1+1/2^2+1/3^2+...+1/n^2. Trong đó N là một số nguyên được nhập vào từ bàn phím. S là tổng các phân số từ 1 đến n, sau khi tính toán tổng S được xuất ra màn hình.
09/02/2023 | 0 Trả lời
-
Sử dụng câu lệnh lặp để viết chương trình tính tổng 1x2+2x3+3x4+...+n(n+1)
24/02/2023 | 0 Trả lời
-
Viết chương trình tính tổng S=1+2+3+.... đến khi S lớn hơn 250 thì dừng. In ra màn hình giá trị tổng S vừa tính và cho biết giá trị cuối cùng được cộng là bao nhiêu?
05/03/2023 | 0 Trả lời
-
Viết chương trình nhập vào 4 số tự nhiên và sắp xếp sau đó in ra màn hình kết quả.
09/03/2023 | 0 Trả lời
-
cho dãy n số nguyên tính tổng các phần tử của dãy và cho biết phần tử nào lớn nhất trong dãy. Hãy viết chương trình bằng pascal?
28/03/2023 | 0 Trả lời
-
Viết chương trình nhập vào 4 số sau đó sắp xếp theo thứ tự từ bé đến lớn?
05/04/2023 | 0 Trả lời
-
S:=1; For i:=1 to 5 do S:=S*i;
Giá trị của biến S bằng bao nhiêu?
A. 120
B. 55
C. 121
D. 151
12/04/2023 | 0 Trả lời
-
Viết chương trình pascal nhập hai số a;b (a>0 ; b>0) xuất ra màn hình các số chính phương từ a-b.
12/04/2023 | 0 Trả lời
-
viết chương trình sử dụng biến mảng để nhập từ bàn phím các phần tử của một dãy số nguyên . độ dài của dãy cũng đc nhập từ bàn phím .in ra màn hình tổng các giá trị là số lẻ
14/04/2023 | 0 Trả lời