Chỉång V : Cạc cáu lãûnh âiãưu khiãøn Trang 35
Ch−¬ng V.
CẠC CÁU LÃÛNH ÂIÃƯU KHIÃØN
Thäng thỉåìng trong mäüt chỉång trçnh, cạc cáu lãûnh âỉåüc thỉûc hiãûn tưn tỉû tỉì trãn
xúng. Tuy nhiãn cọ nhiãưu khi ta lải mún thay âäøi tráût tỉû trãn nhåì sỉí dủng cạc cáu lãûnh âiãưu
khiãøn chỉång trçnh. Cạc cáu lãûnh âiãưu khiãøn cọ thãø lm cho cạc cáu lãûnh âỉåüc thỉûc hiãûn nhiãưu
láưn hồûc khäng láưn no c.
Cạc cáu lãûnh âiãưu khiãøn gäưm cọ :
• cáu lãûnh r nhạnh : if...else ; switch
• cáu lãûnh nhy khäng âiãưu kiãûn
• cáu lãûnh vng làûp
• cáu lãûnh häù tråü nhỉ break, continue.
I.
Cáu lãûnh if .. else....:
I.1.
Cạc dảng ca cáu lãûnh if :
Dảng 1 : if (biãøu thỉïc) /* khäng cọ dáúu cháúm pháøy åí âáy*/
lãûnh_1;
Dảng 2 : if (biãøu thỉïc)
lãûnh_1;
else
lãûnh_2;
biãøu thỉïc
khäúi lãûnh 1
T
F
Ta coù thóứ thay thóỳ lóỷnh trón bũng lóỷnh :
min=(x<y)? x:y;
max=(x>y)? x:y;
I.2.
Sổỷ lọửng nhau giổợa caùc cỏu lóỷnh if:
Caùc cỏu lóỷnh if coù thóứ lọửng nhau : trong khọỳi lóỷnh cuớa cỏu lóỷnh if naỡy coù thóứ coù cỏu
lóỷnh if khaùc. óứ traùnh nhỏửm lỏựn ta nón sổớ duỷng dỏỳu õoùng mồớ khọỳi lóỷnh.
bióứu thổùc
Khọỳi lóỷnh 2
khọỳi lóỷnh 1
T
F
Chổồng V : Caùc cỏu lóỷnh õióửu khióứn Trang 37
Nóỳu sọỳ tổỡ khoùa if bũng sọỳ tổỡ khoùa else thỗ ta coù tổồng ổùng tổỡng cỷp if-else
Nóỳu sọỳ tổỡ khoùa if nhióửu hồn sọỳ tổỡ khoùa else thỗ else õổồỹc gừn vồùi if lióửn trổồùc noù.
Vờ duỷ :
if (n>0)
if (a>b)
z=a;
else z=b;
Nhổ vỏỷy else seợ gừn lióửn vồùi if thổù hai. óứ chổồng trỗnh trong saùng, ta cỏửn tuỏn thuớ :
Ta nón sổớ duỷng cỷp dỏỳu {} õóứ chừc chừn khọng nhỏửm lỏựn.
Caùc cỏu lóỷnh, khọỳi lóỷnh nũm trong mọỹt cỏu lóỷnh if nũm dởch vóử bón phaới.
Trang 38
float a,b,c,delta;
printf(\nNhap vao 3 he so:);
scanf(%f%f%f,&a,&b,&c);
if (a==0)
if (b==0)
if (c==0)
printf(\nPhuong trinh dung voi moi x);
else printf(\nPhuong trinh vo nghiem!);
else printf(\nPhuong trinh co 1 nghiem x: %f,(-c) / b);
else
{
delta=b*b-4*a*c;
if (delta<0.0)
printf(\nPhuong trinh vo nghiem);
else if (delta==0.0)
printf(\nPhuong trinh co mot nghiem kep : x = %f,-b/(2*a));
else { printf(\nPhuong trinh co hai nghiem phan biet :);
printf(\nx1 = %f, (-b+sqrt(delta))/(2*a));
printf(\nx2 = %f, (-b-sqrt(delta))/(2*a));
}
}
getch();
return 0;
}
II.
Cỏu lóỷnh switch:
Lóỷnh if chố cho pheùp ta choỹn mọỹt trong hai phổồng aùn tuỡy theo bióứu thổùc õióửu kióỷn.
#include <stdio.h>
#include <conio.h>
main()
{
char ch;
printf(\n Nhap 1 ki tu:);
scanf(%c,&ch);
switch (ch)
{
case A : printf(\nChu A);
break;
case B : printf(\nChu B);
break;
case C : printf(\nChu C);
break;
default : printf(\nKhong phai cac chu A,B,C);
}
getch();
return 0;
}
Nhióửu giaù trở case trong mọỹt trổồỡng hồỹp :
Maùy seợ tióỳp tuỷc laỡm vióỷc khi chổa gỷp lóỷnh thoaùt, vỗ vỏỷy ta coù thóứ sừp xóỳp õóứ coù nhióửu
giaù trở case trong mọỹt trổồỡng hồỹp
Vờ duỷ :
#include <stdio.h>
#include <conio.h>
main()
{
int n;
printf(Nhap diem:);
{
case 0,1,2,3,4: printf(loaỷi keùm);break;
case 5,6: printf(loaỷi trung bỗnh);break;
case 7,8: printf(loaỷi gioới);break;
default: printf(loaỷi gioới);
}
getch();
return 0;
}
Ta nón sổớ duỷng default cho duỡ khọng bao giồỡ xaớy ra trổồỡng hồỹp õoù: ta duỡng default õóứ
kióứm tra xem coù thóứ coù lọựi hay khọng bũng caùch õỷt mọỹt thọng baùo lọựi ồớ õoù, tổỡ õoù ta dóự gồợ rọỳi.
III.
Cỏu lóỷnh for:
óứ thổỷc hióỷn caùc cọng vióỷc lỷp õi lỷp laỷi hay laỡm vióỷc vồùi caùc phỏửn tổớ maớng, nóỳu ta
vióỳt tổỡng lóỷnh mọỹt thỗ seợ khọng hióỷu quaớ.
Daỷng :
for([ caùc bióứu thổùc khồới taỷo ] ; [ bióứu thổùc õióửu kióỷn ] ; [ bióứu thổùc thay õọứi õióửu kióỷn ])