You are on page 1of 11

CHNG 3: CU TRC IU KHIN

Hc xong chng ny sinh vin c th: Trnh by c php, ngha cc cu trc iu khin trong Java Vn dng cc cu trc iu khin gii quyt bi ton

3.1 CC CU TRC LNH TRN JAVA


Java cung cp hai loi cu trc iu khin: iu khin r nhnh if-else switch-case Vng lp while Vng lp do-while Vng lp for

Vng lp (Loops)

3.2 CU TRC IF ELSE


Cu trc if-else kim tra gi tr dng boolean ca iu kin. Nu gi tr iu kin l True th ch c khi lnh sau if s c thc hin, nu l False th ch c khi lnh sau else c thc hin. C php:
if (conditon) { action1 statements; } else { action2 statements; }

Condition: Biu thc boolean nh ton t so snh. action 1: Khi lnh c thc thi khi gi tr iu kin l True action 2: Khi lnh c thc thi nu iu kin tr v gi tr False on chng trnh sau kim tra xem cc s c chia ht cho 5 hay khng.

Chng trnh 3.3


package vidu.chuong3; class CheckNumber { public static void main(String args[]) { int num = 10; if(num%5 == 0) System.out.println (num + is divisable for 5!); else System.out.println (num + is indivisable for 5!); } }

on chng trnh trn num c gn gi tr nguyn l 10. Trong cu lnh if-else iu kin num %5 tr v gi tr 0 v iu kin thc hin l True. Thng bo 10 is divisable for 5! c in ra. Lu rng v ch c mt cu lnh c vit trong on if v else, bi vy khng cn thit phi c a vo du ngoc mc { v }.

3.3 CU TRC SWITCH CASE


Khi lnh switch-case c th c s dng thay th cu lnh if-else trong trng hp mt biu thc cho ra nhiu kt qu. C php:
switch (expression) { case value1: action 1 statement; break; case value2: action 2 statement; break; case valueN: actionN statement; break; default: } default_action statement;

expression - Bin cha mt gi tr xc nh value1,value 2,.valueN: Cc gi tr hng s ph hp vi gi tr trn bin expression .

action1,action2actionN: Khi lnh c thc thi khi trng hp tng ng c gi tr True break: T kho c s dng b qua tt c cc cu lnh sau v ginh quyn iu khin cho cu trc bn ngoi switch default: T kha tu chn c s dng ch r cc cu lnh no c thc hin ch khi tt c cc trng hp nhn gi tr False default - action: Khi lnh c thc hin ch khi tt c cc trng hp nhn gi tr False on chng trnh sau xc nh gi tr trong mt bin nguyn v hin th ngy trong tun c th hin di dng chui. kim tra cc gi tr nm trong khong t 0 n 6, chng trnh s thng bo li nu nm ngoi phm vi trn. Chng trnh 3.4
package vidu.chuong3; class SwitchDemo { public static void main(String agrs[]) { int day = 2; switch(day) { case 0 : System.out.println(Sunday); break; case 1 : System.out.println(Monday); break; case 2 : System.out.println(Tuesday); break; case 3 : System.out.println(Wednesday); break; case 4 : System.out.println(Thursday); break; case 5: System.out.println(Friday); break; case 6 : System.out.println(Satuday); break; default: System.out.println(Invalid day of week); }

} }

Nu gi tr ca bn day l 2, chng trnh s hin th Tuesday, v c tip nh vy .

3.4 VNG LP WHILE


Vng lp while thc thi khi lnh khi iu kin thc thi vn l True v dng li khi iu kin thc thi nhn gi tr False. C php:
while(condition) { action statements; }

condition: c gi tr bool; vng lp s tip tc nu iu kin vn c gi tr True. action statement: Khi lnh c thc hin nu condition nhn gi tr True on chng trnh sau tnh tng ca 5 s t nhin u tin dng cu trc while.

Chng trnh 3.5


package vidu.chuong3; class WhileDemo { public static void main(String args[]) { int a = 5, sum = 1; while { sum +=a; a--; } System.out.println(The sum is + sum); } } (a >= 1)

v d trn, vng lp c thc thi cho n khi iu kin a>=1 l True. Bin a c khai bo bn ngoi vng lp v c gn gi tr l 5. Cui mi vng lp, gi tri ca a gim i 1. Sau nm vng gi tr ca a bng 0. iu kin tr v gi tr False v vng lp kt thc. Kt qu s c hin th The sum is 15

3.5 VNG LP DO WHILE


Vng lp do-while thc thi khi lnh khi m iu kin l True, tng t nh vng lp while, ngoi tr do-while thc hin lnh t nht mt ln ngay c khi iu kin l False. C php:
do{ action statements; }while(condition);

condition: Biu thc bool; vng lp s tip tc khi m iu kin vn c gi tr True. action statement: Khi lnh lun c thc hin ln th nht, t vng lp th hai, chng c thc hin khi condition nhn gi tr True. V d sau tnh tng ca 5 s t nhin u tin dng cu trc do-while. Chng trnh 3.6
package vidu.chuong3; class DoWhileDemo { public static void main(String args[]) { int a = 1, sum = 0; do{ sum += a; a++; }while } } (a <= 5); is + sum); System.out.println(Sum of 1 to 5

Bin a c khi to vi gi tr 1, sau n va c dng lm bin chy (tng ln 1 sau mi ln lp) va c dng cng dn vo bin sum. Ti thi im kt thc, chng trnh s in ra Sum of 1 to 5 is 15.

3.6 VNG LP FOR


Vng lp for cung cp mt dng kt hp tt c cc c im chung ca tt c cc loi vng lp: gi tr khi to ca bin chy, iu kin dng ca vng lp v lnh thay i gi tr ca bin chy. C php:
for(initialization statements; condition; increment statements) {

action statements; }

initialization statements: khi to gi tr ban u cho cc bin chy, cc lnh khi to c phn cch nhau bi du phy v ch thc hin duy nht mt ln vo thi im bt u ca vng lp. condition: Biu thc bool; vng lp s tip tc cho n khi no iu kin c gi tr False. increment statements: Cc cu lnh thay i gi tr ca bin chy. Cc lnh ny lun c thc hin sau mi ln thc hin khi lnh trong vng lp. Cc lnh phn bit nhau bi du phy. on chng trnh sau hin thi tng ca 5 s u tin dng vng lp for.

Chng trnh 3.7


package vidu.chuong3; class ForDemo { public static void main(String args[]) { int sum = 0; for (int i=1; i<=5; i++) sum += i; System.out.println (The sum is + sum); } }

v d trn, i v sum l hai bin c gn cc gi tr u l 1 v 0 tng ng. iu kin c kim tra v khi n cn nhn gi tr True, cu lnh tc ng trong vng lp c thc hin. Tip theo gi tr ca i c tng ln 2 to ra s chn tip theo. Mt ln na, iu kin li c kim tra v cu lnh tc ng li c thc hin. Sau nm vng, i tng ln 6, iu kin tr v gi tr False v vng lp kt thc. Thng bo: The sum is 15 c hin th.

3.7 CASE STUDY I


By gi, p dng cc ni dung hc trong chng ny vit mt chng trnh tnh chu vi v din tch ca mt hnh ch nht c kch thc x,y vi yu cu: Kch thc x, y nhp t tham s dng lnh. Phi kim tra x, y l cc s nguyn dng hay khng trc khi tnh ton. In kt qu tnh ton ra mn hnh

y l on chng trnh thc hin bi ton ny.

Chng trnh 3.8


package vidu.chuong3; import java.awt.*; import java.lang.*; class RectangleDemo { public static void main(String args[]) { //khai bo cc bin lu gi kch thc ca hnh ch nht int x = 0, y = 0; /*c cc kch thc t tham s dng lnh*/ //nu truyn hai tham s th mi tnh tip if(args.length >= 2) { //chuyn kiu t String sang integer x = Integer.parseInt(args[0]); y = Integer.parseInt(args[1]); } /*Tinh chu vi v din tch hnh ch nht*/ //nu c hai tham s u dng th mi tnh if(x>0 && y>0) { //tnh chu vi int chuvi = 2*(x + y); System.out.println (Chu vi l + chuvi); //tnh din tch int dientich = x*y; System.out.println (Din tch l + dientich); } else System.out.println (Cc tham s khng ng!); } }

Sau khi bin dch chng trnh3.8 (tp tin c tn RectangleDemo.java), ta chy t ca s dng lnh: >java RectangleDemo 10 20 S thu c kt qu:
Chu vi l: 60 Din tch l: 200

Nu ch g ca s dng lnh: >java RectangleDemo Th s nhn c mt thng bo li:


Cc tham s khng ng!

TNG KT CHNG 3
Ni dung chng 3 trnh by cc ni dung c bn v c php ngn ng lp trnh Java: Lnh package c dng khai bo tn gi ca lp. Lnh import c s dng trong chng trnh truy cp cc gi th vin Java. Lnh class c dng khai bo tn lp ng dng Java c mt lp cha phng thc main. Cc tham s c th c truyn vo phng thc main nh cc tham s lnh (command line parameters). Java cung cp cc cu trc iu khin lnh: if-else switch for while do while

CU HI V BI TP CHNG 3
1. Trong cu trc lnh if-else n (1 if v 1 else) th c t nht mt khi lnh (ca if hoc ca else) c thc hin. ng hay sai? 2. Trong cu trc lnh switch-case, khi khng dng default th c t nht mt khi lnh c thc hin. ng hay sai?

3. Trong cu trc lnh switch-case, khi dng default th c t nht mt khi lnh c thc hin. ng hay sai? 4. Trong cu trc lnh while, khi lnh c thc hin t nht mt ln ngay c khi iu kin c gi tr False. ng hay sai? 5. Trong cu trc lnh do-while, khi lnh c thc hin t nht mt ln ngay c khi iu kin c gi tr False. ng hay sai? 6. Trong cu trc lnh for, khi lnh c thc hin t nht mt ln ngay c khi iu kin c gi tr False. ng hay sai? 7. Cho bit kt qu thu c khi thc hin on chng trnh sau?
class me{ public static void main(String args[]){ int sales = 820; int profit = 200; System.out.println((sale +profit)/10*5); } }

8. Cho bit on chng trnh sau thc hin vng lp bao nhiu ln v kt qu in ra l g?
class me{ public static void main(String args[]){ int i = 0; int sum = 0; do{ sum += i; i++; }while(i <= 10); System.out.println(sum); } }

9. Cho bit on chng trnh sau thc hin vng lp bao nhiu ln v kt qu in ra l g?
class me{ public static void main(String args[]){ int i = 5; int sum = 0; do{ sum += i; i++; }while(i < 5); System.out.println(sum);

} }

10. Cho bit hai on chng trnh sau in ra kt qu ging hay khc nhau?
class me1{ public static void main(String args[]){ int i = 0; int sum = 0; for(i=0; i<5; i++){ sum += i; } System.out.println(sum); } }

v:
class me2{

public static void main(String args[]){ int i = 0; int sum = 0; for( ; i<5; i++){ sum += i; } System.out.println(sum); } }

11. Vit chng trnh tnh tng cc s chn nm trong khong 1 n 100. 12. Vit chng trnh hin th cc bi s ca 7 nm gia 1 v 100. 13. Vit chng trnh tm giai tha ca n (n>0), n nhp t bn phm 14. Vit chng trnh tm bi s chung nh nht ca m v n (m,n>0), m v n c nhp t bn phm. 15. Vit chng trnh tm c s chung ln nht ca m v n (m,n>0), m v n c nhp t bn phm. 16. Vit chng trnh tm s Fibonaci th n (n>2). Bit rng s Fibonaci c tnh theo cng thc: F(n) = F(n-1) + F(n-2) vi n>=2 v F(0) = F(1) = 1.

You might also like