Nguyên tắc thực hiện như sau nếu điều kiện đưa ra là đúng (true), chương trình sẽ thực hiện một công việc nào đó, nếu điều kiện đưa ra là sai (false), chương trình sẽ thực hiện một cô[r]
Trang 1NHẬP MÔN TIN HỌC
CÁC CẤU TRÚC ĐIỀU KHIỂN
TS Đào Nam Anh
Trang 2tài liệu [1] và các mã nguồn [2]:
1 TS.Nguyễn Thị Thu Hà,
TS.Nguyễn Hữu Quỳnh,
TS.Nguyễn Thị Thanh Tân,
Giáo trình Nhập môn tin học,
Khoa CNTT, Đại học Điện lực, 2013
2 Programiz.com
Trang 3U C A N
Trang 4
Câu lệnh if
Câu lệnh if – else
Câu lệnh với nhiều lệnh if
Câu lệnh if lồng nhau
Câu lệnh switch
Vòng lặp
Vòng lặp „for‟ trong C
Toán tử „phẩy‟
Vòng lặp lồng nhau
Vòng lặp „while‟ và vòng lặp „do-while‟
Lệnh nhẩy
Các lệnh „break‟, „continue‟ và „goto‟
Trang 5chương trình Dựa trên một điều kiện nào đó, một câu lệnh hay một chuỗi các câu lệnh có thể được thực hiện hoặc không
Hầu hết các ngôn ngữ lập trình đều sử dụng lệnh if để đưa ra
điều kiện Nguyên tắc thực hiện như sau nếu điều kiện đưa ra
là đúng (true), chương trình sẽ thực hiện một công việc nào đó, nếu điều kiện đưa ra là sai (false), chương trình sẽ thực hiện một công việc khác
Trang 6Để xác định một số là số n hay số lẻ, ta thực hiện như sau:
1 Nhập vào một số
2 Chia số đó cho 2 để xác định số dư
3 Nếu số dư của phép chia là 0, đó là số “Chẵn”
HOẶC nếu số dư của phép chia khác 0, đó là số “Lẻ”
Bước 2 trong giải thuật trên kiểm tra phần dư của số đó khi chia cho 2 có bằng 0 không? Nếu đúng, ta thực hiện việc hiển thị
thông báo đó là số chẵn Nếu số dư đó khác 0, ta thực hiện việc hiển thị thông báo đó là số lẻ
6
Trang 7khác 0, là sai (false) khi nó có giá trị bằng 0
C cung cấp hai dạng câu lệnh lựa chọn:
Câu lệnh if
Câu lệnh switch
Sau đây chúng ta hãy tìm hiểu hai câu lệnh lựa chọn này
Trang 8 Câu lệnh if cho phép ta đưa
ra các quyết định dựa trên
việc kiểm tra một điều kiện
nào đó là đúng (true) hay sai
(false)
Sơ đồ quy trình thực hiện
của câu lệnh if Khi xét điều
kiện, nếu điều kiện trong
trường hợp đúng công việc
sẽ được thực hiện, còn nếu
điều kiện sai, chương trình
Điều kiện
Công việc Nếu điều kiện đúng
Nếu điều kiện sai
Trang 9if (biểu thức)
Các câu lệnh;
Biểu thức phải luôn được đặt trong cặp dấu ngoặc () Mệnh đề theo sau từ khoá if là một điều kiện (hoặc một biểu thức điều kiện) cần được kiểm tra Tiếp đến là một lệnh hay một tập các lệnh sẽ được thực thi khi điều kiện (hoặc biểu thức điều kiện)
có kết quả true
Trang 10#include <stdio.h>
void main()
{
int a = 10, b = 2, max;
if (a > b){
max = a ; printf(“The max value is: %d”, max) ; }
}
10
Trang 11#include <stdio.h>
void main()
{
int a = 10, b = 2, max;
if (a > b){
max = a ; printf(“The max value is: %d”, max) ; }
Với a được gán giá trị
10, b được gán giá trị
2, biểu thức điều kiện (a>b) có giá trị đúng
Trang 12#include <stdio.h>
void main()
{
int a = 10, b = 2, max;
if (a > b){
max = a ; printf(“The max value is: %d”, max) ; }
}
12
Với a được gán giá trị
10, b được gán giá trị
2, biểu thức điều kiện (a>b) có giá trị đúng
Do đó khối lệnh gắn
với biểu thức if được
thực thi và kết quả của chương trình như sau: The max value is: 10
Trang 13#include <stdio.h>
void main()
{
int a = 10, b = 2, max;
if (a > b){
max = a ; printf(“The max value is: %d”, max) ;
Khối lệnh sau lệnh if được
đặt trong cặp ngoặc nhọn {} Khi có nhiều lệnh cần được thực hiện, các câu lệnh đó được coi như một khối lệnh (block) và phải được đặt trong cặp dấu {}
Trang 14#include <stdio.h>
void main()
{
int a = 10, b = 2, max;
max = a ;
}
14
Khối lệnh sau lệnh if được
đặt trong cặp ngoặc nhọn {} Khi có nhiều lệnh cần được thực hiện, các câu lệnh đó được coi như một khối lệnh (block) và phải được đặt trong cặp dấu {}
Nếu trong ví dụ trên ta không đưa vào dấu ngoặc
nhọn ở câu lệnh if, chỉ có
câu lệnh đầu tiên (max = a) được thực hiện khi điều
kiện trong câu lệnh if là
đúng
Trang 15#include <stdio.h>
void main()
{
int a = 10, b = 2, max;
if (a > b && (a>3 || b<5))
max = a ; }
Nếu có nhiều biểu thức điều kiện cần kiểm tra, tùy vào trường hợp ta kết hợp các biểu thức dưới dạng phép (AND)
ký hiệu &&, phép (OR) ký hiệu ||
Trang 1616
là năm nhuận hay không
Năm nhuận là năm chia hết cho 4 hoặc 400 nhưng không chia hết cho 100
Trang 17#include <stdio.h>
void main()
{
int y;
printf(“\nPlease enter a year:”);
scanf(“%d”, &y);
if (y% 4 == 0 && y % 100 != 0
|| y % 400 == 0)
printf(“\n%d is a leap year!”, y);
là năm nhuận hay không
Năm nhuận là năm chia hết cho 4 hoặc 400 nhưng không chia hết cho 100
Chúng ta sử dụng lệnh if để kiểm
tra điều kiện
Trang 18#include <stdio.h>
void main()
{
int y;
printf(“\nPlease enter a year:”);
scanf(“%d”, &y);
if (y% 4 == 0 && y % 100 != 0
|| y % 400 == 0)
printf(“\n%d is a leap year!”, y);
getch();
}
18
phải là năm nhuận hay không
Năm nhuận là năm chia hết cho 4 hoặc 400 nhưng không chia hết cho 100
Chúng ta sử dụng lệnh if để
kiểm tra điều kiện
Chương trình trên cho ra kết quả như sau:
Please enter a year: 2012
2012 is a leap year!
Trang 19#include <stdio.h>
void main()
{
int y;
printf(“\nPlease enter a year:”);
scanf(“%d”, &y);
if (y% 4 == 0 && y % 100 != 0
|| y % 400 == 0)
printf(“\n%d is a leap year!”, y);
year % 4 == 0 &&
year % 100 != 0 ||
year % 400 == 0 trả về giá trị 1 nếu năm đó là năm nhuận
Khi đó, chương trình hiển thị thông báo gồm biến year và dòng chữ “is a leap year”
Trang 20 Ở trên ta đã biết dạng
đơn giản nhất của câu
lệnh if, cho phép ta lựa
chọn để thực hiện hay
không một câu lệnh hoặc
một chuỗi các lệnh
C cũng cho phép ta lựa
chọn trong hai khối lệnh
để thực hiện bằng cách
dùng cấu trúc if – else
như sau:
20
Nếu điều kiện đúng
Công việc 1
Nếu điều kiện sai