65

งานนำเสนอ1อ ทรงศักดิ์

Embed Size (px)

Citation preview

Page 1: งานนำเสนอ1อ ทรงศักดิ์
Page 2: งานนำเสนอ1อ ทรงศักดิ์

3.1 3.1 ตวด ำำเน นกำรทำงตรรกะต วด ำำเน นกำรทำงตรรกะ

ตวด ำำเนนกำรแบบสมพนธ ตวด ำำเนนกำรแบบสมพนธ ((Relational OperatorsRelational Operators) ) คอตวคอตวดำำเนนกำรททำำหนำทเปรยบเทยบคำดำำเนนกำรททำำหนำทเปรยบเทยบคำ

ระหวำงตวแปรสองตว หรอนพจนสอง ระหวำงตวแปรสองตว หรอนพจนสอง นพจน โดยจะคนคำเปนจรงหรอเทจ นพจน โดยจะคนคำเปนจรงหรอเทจ

((Boolean)Boolean)

Page 3: งานนำเสนอ1อ ทรงศักดิ์

Relational Operator ตวอยำง

< Op1<Op2 : คนคำควำมเปนจรงถำ Op1 น อยกวำOp2

a=(1<3); //aจะมคำเปนจรง

<= Op1<=Op2 : คนคำควำมเปนจรงถำ Op1 นอยกวำ Op2 หรอเทำกบ Op2

a=(5<=7); //a จะมคำเปนจรง

> Op1>Op2 :คนคำควำมเปนจรงถำ Op1 มำกกวำOp2

a=(5>7); //a จะมคำเปนจรง

>= Op1>=Op2 : คนคำควำมเปนจรงถำ Op1 มำกกวำ หรอเทำกบ Op2

a=(5>=7); //a จะมคำเปนจรง

== Op1==Op2 : คนคำควำมเปนจรงถำ Op1 เทำกบOp2

a=(5==7); // a จะมคำเปนเทจเพรำะ 5 ไมเทำกบ 7

!= Op1!=Op2 : คนคำควำมเปนจรงถำ Op1 ไม เทำกบ Op2

a=(5!=7); // a จะมคำเปนจรง เพรำะ 5 ไมเทำกบ 7

": (expression)"a:b :คอคำตว operand a ถำexpression เปนจรง

a=(3>5)"false:true; //a จะมคำ เปนจรง เพรำะผลกำรเปรยเทยบ 3 มำกกวำ 5 เปนเทจ เมอคำทไดเปน

เทจจะเลอกคำ true

Page 4: งานนำเสนอ1อ ทรงศักดิ์

ตวดำำเนนกำรทำงตรรกศำสตร ตวดำำเนนกำรทำงตรรกศำสตร (Logical (Logical Operator)Operator)

ตวดำำเนนกำรทำงตรรกะ เปนตวดำำเนนกำร ตวดำำเนนกำรทำงตรรกะ เปนตวดำำเนนกำรเกยวของกบนพจนทสำมำรถบอกคำควำมจรงเกยวของกบนพจนทสำมำรถบอกคำควำมจรงเปนจรงเปนจรง(true) (true) หรอเทจ หรอเทจ (false)(false) ได หรอชนด ได หรอชนด

ขอมลตรรกะ เชน ตวแปรประเภท ขอมลตรรกะ เชน ตวแปรประเภท boolean boolean ผลลพธทไดจำกกำรกระทำำจะไดคำคงทตรรกะผลลพธทไดจำกกำรกระทำำจะไดคำคงทตรรกะ

เปน เปน true true หรอหรอ false false ตวดำำเนนกำรทำงตรรกะตวดำำเนนกำรทำงตรรกะ ไดแกเครองหมำย ไดแกเครองหมำย !, &&, &, ||, |, ^ !, &&, &, ||, |, ^ มตวอยำงมตวอยำง

กำรใชงำนดงนกำรใชงำนดงน

Page 5: งานนำเสนอ1อ ทรงศักดิ์

เคร องหมำยดำำเน นกำร

ควำมหมำย ตวอยำง ผลลพธ

! NOT (นเสธ) !(5 > 3) false

&& หรอ &

AND (และ) (x >= 10)&&(x <= 100)

มคำเปน true เมอ(x >= 10) มคำเปน true

และ (x <= 100) มคำเปนtrue

|| หรอ |

OR (หรอ) (x < 10) || (x > 100)

มคำเปน true เมอ(x < 10) มคำเปน true

หรอ (x > 100) มคำเปนtrue

^

Exclusive OR

(x > 20) ^ (y > 20)

มคำเปน false ได 2 กรณ คอ

กรณท1 เมอ (x >= 10) มคำเปน

true และ (x <= 100) มคำ เปน true

กรณท2 เมอ (x >= 10) มคำเปน

false และ (x <= 100) ม คำเปน false

Page 6: งานนำเสนอ1อ ทรงศักดิ์

ตวดำำเนนกำรทำงตรรกะแบบตำงๆ สำมำรถแสดงผลลพธของนพจนตรรกะตำมคำควำมจรงของกำรดำำเนน

กำรไดดงตำรำงคำควำมจรง (Truth Table) ดงน

ตำรำงคำควำมจรงของตวดำำเนนกำร ! หรอ NOT

คำควำมจร งนพจน

ต วอย ำง ผลลพธ

false !(false) False

true !(true) True

Page 7: งานนำเสนอ1อ ทรงศักดิ์

ตำรำงคำควำมจรงของตวดำำเนนกำร && หรอ AND

คำควำมจร งน พจนท 1

คำควำมจร งน พจนท 2

ตวอยำง ผลลพธ

false false false && false False

false true false && true False

true false true && false False

True true true && true True

Page 8: งานนำเสนอ1อ ทรงศักดิ์

ตำรำงคำควำมจรงของตวดำำเนนกำร ตำรำงคำควำมจรงของตวดำำเนนกำร || || หรอ หรอ OROR

คำควำมจร งน พจนท 1

คำควำมจร งน พจนท 2

ผลลพธ ผลล พธ

False false false || false False

False true false || true True

True false true || false True

True true true || true True

Page 9: งานนำเสนอ1อ ทรงศักดิ์

ตำรำงคำควำมจรงของตวดำำเนนกำร ตำรำงคำควำมจรงของตวดำำเนนกำร ^ ^ หรอ หรอ XORXOR

คำควำมจร งน พจนท 1

คำควำมจร งน พจนท 2

ผลลพธ ผลล พธ

False false false ^ false False

False true false ^ true True

True false true ^ false True

True true true ^ true false

Page 10: งานนำเสนอ1อ ทรงศักดิ์

ตวอย ำงต วอย ำง กำรใช กำรใช Operator Operator แบบ แบบ booleanbooleanclass BoolLogic{public static void main(String

args[]){boolean a = true; boolean b =

false;boolean c = a | b; boolean d = a &

b;boolean e = a ^ b; boolean f = (!a

& b) | (a & !b);boolean g = !a;System.out.println("a = " + a);

System.out.println("b = " + b);System.out.println("a | b = " + c);

System.out.println("a & b = " + d);

System.out.println("a ^ b = " + e); System.out.println("!a = " + g);

System.out.println("!a & b | a & !b = " + f);

}}

Page 11: งานนำเสนอ1อ ทรงศักดิ์

ตวด ำำเน นกำรระด บ ตวด ำำเน นกำรระด บ ((Bitwise Bitwise Operator)Operator) Operator ร ปแบบ และกำรทำำงำน ตวอยำง ผลลพธ ท ได

~ ~ Op : ทำำ complement คอทำำกำรเปลยนคำของบต 1 เปน 0

และเปลยนบตทมคำ 0 เปน 1

a= 0x0005 -6

<<, >> กำรยำยบตไปทำงซำย และทำงขวำ

a= 0x0005 << 2a= 0x0005 >> 2

201

Page 12: งานนำเสนอ1อ ทรงศักดิ์

>>> กำรยำยบตไปทำงขวำเสมอนไมมเครองหมำย

a= 0x0005 >>> 2a= 0xFFF5 >>> 2

116381

& ประมวลผลแบบ Bitwise AND a= 0x0005 & a = 0x0007;

5

^ ประมวลผลแบบ Bitwise XOR a= 0x0005 ^ a= 0x0007;

2

| ประมวลผลแบบ Bitwise OR a= 0x0005 | a= 0x0007;

7

Page 13: งานนำเสนอ1อ ทรงศักดิ์

ลำำดบในกำรประมวลของ ลำำดบในกำรประมวลของ Operators Operators

ตำง ๆ ตำง ๆ ตวกระทำำ (Operators) ลำำด บ ประเภทของกำรประมวลผล

() วงเลบ 1

++(Increment), --(Decrement), +(Unary plus), -(unary minus)!(Not)~(Complement)(type_cast)

2 กำรคำำนวณกำรคำำนวณBooleanintegerทกรปแบบ

*(Multiply),/(Divide),%(modulus) 3 กำรคำำนวณ

+(Add),-(subtract) 4 กำรคำำนวณ

<< (Left shift),>>(Right shift),>>>(zero fill)

5 จำำนวนเตม

< (Less than), <==(less than or equal), >(greater than), >==(greater than or equal)Instanceof()

6 กำรคำำนวณ object, (เปรยบเทยบ object)

==(Equal),!=(not equal) 7 ขอมลพนฐำน และ object

&(Bitwise AND) 8 จำำนวนเตม

^ (Bitwise XOR) 9 จำำนวนเตม

| (Bitwise OR) 10 จำำนวนเตม

s&& (AND) 11 Boolean

|| (OR) 12 Boolean

": 13 Boolean

= ,*= , /=, %=, +=, -=, <<=, =>>, >>>, &=, ^=, !=

14 อน ๆ

Page 14: งานนำเสนอ1อ ทรงศักดิ์

ตวอย ำง ตวอย ำง กำรคำำนวณโดยใช กำรคำำนวณโดยใชOperator1Operator1 class OpEquals{public static void main (String args[]){int a =1; int b = 2; int c = 3;a += 5; b *= 4; c +=a * b; c %=6;System.out.println("a = " + a);

System.out.println("b = " + b);System.out.println("c = " + c);}}

Page 15: งานนำเสนอ1อ ทรงศักดิ์

ตวอย ำง ตวอย ำง กำรคำำนวณโดยใช กำรคำำนวณโดยใชOperator2Operator2

class IncDec{public static void main(String ars[]){int a = 1; int b = 2;int c = ++b; int d = a++;c++;System.out.println("a = " + a);

System.out.println("b = " + b);System.out.println("c = " + c);

System.out.println("d = " + d);} }

Page 16: งานนำเสนอ1อ ทรงศักดิ์

3.2 3.2 คำำส ง คำำส ง if (if Statement)if (if Statement) เล อกทำำแบบทำงเด ยวเล อกทำำแบบทำงเด ยว

คำำส ง คำำส ง if then-- > if then-- > เปนค ำำส ง เล อกเปนค ำำส ง เล อก ทำำแบบทำงเด ยว กำรเล อกทำำแบบทำง ทำำแบบทำงเด ยว กำรเล อกทำำแบบทำง

เด ยวในภำษำปำสคำลจะใชค ำำส ง เด ยวในภำษำปำสคำลจะใชค ำำส ง if – if – then then ในกำรทำำงำนของค ำำส ง ในกำรทำำงำนของค ำำส ง

คอมพวเตอร จะตรวจสอบเง อนไขกอน ถำ คอมพวเตอร จะตรวจสอบเง อนไขกอน ถำ เง อนไขเปนจร งจะท ำำค ำำส งหร อ สเตตเมน เง อนไขเปนจร งจะท ำำค ำำส งหร อ สเตตเมน

ตท ตำมหลง ตท ตำมหลง then then แตถ ำเง อนไขเปนเท จแต ถ ำเง อนไขเปนเท จ คอมพวเตอร จะท ำำค ำำส งหร อ สเตตเมนต คอมพวเตอร จะท ำำค ำำส งหร อ สเตตเมนต

ตอไป ร ปแบบของค ำำส ง เปนด งต อไปน ตอไป ร ปแบบของค ำำส ง เปนด งต อไปน

Page 17: งานนำเสนอ1อ ทรงศักดิ์

คำำส ง คำำส ง if thenif then

ร ปแบบคำำส งร ปแบบคำำส ง ::if (…if (… เง อนไข เง อนไข ---- condition……condition……))

then……then……..

โดยกำรตรวจสอบเง อนไขจะเปนกำรกโดยกำรตรวจสอบเง อนไขจะเปนกำรก ระทำำ ระทำำ แบบบล นแบบบล น ถำหำกมกำรใชต วด ำำเน น ถำหำกมกำรใชต วด ำำเน น

กำร จะใชตวด ำำเน นกำรบล น ส ำำหร บกำร กำร จะใชตวด ำำเน นกำรบล น ส ำำหร บกำร ทำำงำนของค ำำส ง ทำำงำนของค ำำส ง if –then if –then สำมำรถเข ยนสำมำรถเข ยน

เปนผงงำนไดด งน เปนผงงำนไดด งน

Page 18: งานนำเสนอ1อ ทรงศักดิ์

คำำส ง คำำส ง if thenif then - - > - - > ใน ใน 1 1 โปรแกรมสำมำรถม โปรแกรมสำมำรถม if then if then ไดหลำยทได หลำยทFlow Chart :Flow Chart :

Page 19: งานนำเสนอ1อ ทรงศักดิ์

คำำส ง คำำส ง if thenif thenตวอย ำงโปรแกรมตวอย ำงโปรแกรม ::1 1 - - >- - >โปรแกรมในฝนโปรแกรมในฝน

var age:integer;

beginIf (age >= 18) then

writeln (‘of age’);writeln (‘good luck’);

Readln;end.

Page 20: งานนำเสนอ1อ ทรงศักดิ์

3.3 3.3 คำำส ง คำำส ง (if – then – else) (if – then – else) เปนค ำำเปนค ำำส ง เล อกทำำอยำงใดอยำงหนงส ง เล อกทำำอยำงใดอยำงหนง

ในกรณทคอมพวเตอรตองเลอกทำำอยำงใด อยำงหนง โดยตรวจสอบเงอนไขทกำำหนด

จะใช คำำสง if – then –else โดยถำ เงอนไขเปนจรงจะทำำคำำสงหลง then แตถำ เงอนไขเปนเทจจะทำำคำำสงหลง else โดย

นพจนทตำมหลง if จะเปนขอมลทำงตรรกะรปแบบคำำสงเปนดงน

Page 21: งานนำเสนอ1อ ทรงศักดิ์

คำำส ง คำำส ง if- thenif- then - - elseelse

ร ปแบบคำำส งร ปแบบคำำส ง : : หลง หลง statementstatement ท ท 1 1 ไมม ไมม semicolon ( ; ) semicolon ( ; ) [[ขอยกเว นข อยกเว น ]]

if if ((…… เง อนไข เง อนไข ---- condition…… condition……) ) thenthen ..statement 1..statement 1

else ..statement 2else ..statement 2

Page 22: งานนำเสนอ1อ ทรงศักดิ์

โดยกำรตรวจสอบเง อนไขจะเป นกำรกระทำำ แบบบล น คำำส ง if – then – else สำมำรถเข ยนเป นผงงำนได

ดงน คำำส ง if - then - else

Flow Chart :

Page 23: งานนำเสนอ1อ ทรงศักดิ์

คำำส ง คำำส ง if - then - else if - then - else ตวอย ำงโปรแกรมตวอย ำงโปรแกรม ::1 1 - - >- - >โปรแกรมในฝนโปรแกรมในฝน

var scroe:integer;begin

If (score >= 50)Then WRITE (‘You

pass’)ELSE

WRITELN (‘You fail);

readln;end.

Page 24: งานนำเสนอ1อ ทรงศักดิ์

3.4 3.4 คำำส ง คำำส ง if....elseifif....elseif ใชในกรณท ม เง อนไข if และ else จำำนวนมำก คำำส ง

elseif เป นกำรรวมกนของคำำส ง if และ else ซงค ำำส ง เหล ำน จะเร ยงล ำำด บก นอย ม ร ปแบบดงร ป

Page 25: งานนำเสนอ1อ ทรงศักดิ์

กำรใช กำรใช if, if else, if else if if, if else, if else if ใน ใน JavascriptJavascriptif if ใน ใน JavascriptJavascript1.if(condition){   1.if(condition){         2. statement 1;  2. statement 1;          3.statement 2;  3.statement 2;          4. ...  4. ...  5.}5.}

    statement 1;statement 2;... condition statement 1;statement 2;... condition คอเงอนไงทตองกำร คอเงอนไงทตองกำร statement statement กคอคำำสงในกคอคำำสงใน

โปรแกรม อำจประกอบดวยหลำยคำำสง ถำหำก โปรแกรม อำจประกอบดวยหลำยคำำสง ถำหำกมคำำสงมำกกวำหนงใหใสวงเลบปกกำมคำำสงมำกกวำหนงใหใสวงเลบปกกำ{} {} ครอบครอบ

คำำสงทงหมดไว แตถำมเพยงคำำสงเดยวไมตอง คำำสงทงหมดไว แตถำมเพยงคำำสงเดยวไมตอง ใสวงเลบปกกำกได ถำหำกไมมคำำสงใด ๆ ให ใสวงเลบปกกำกได ถำหำกไมมคำำสงใด ๆ ให

ใสวงเลบเปลำ หรอใสเครองหมำย ใสวงเลบเปลำ หรอใสเครองหมำย ; ; ไวกไดไวกได

Page 26: งานนำเสนอ1อ ทรงศักดิ์

ตวอย ำงกำรใชตวอย ำงกำรใช if if ใน ในJavascriptJavascript

• <script language="javascript" type="te<script language="javascript" type="text/javascript">  xt/javascript">  

• function useif(){  function useif(){  •         var score = document.getElementvar score = document.getElement

ById("score").value;  ById("score").value;  •         if(score < 50)  if(score < 50)  •                 document.getElementById("shdocument.getElementById("sh

ow").innerHTML = "Your Grade : F";  ow").innerHTML = "Your Grade : F";  •         if(score >= 50 && score < 60)  if(score >= 50 && score < 60)  •                 document.getElementById("shdocument.getElementById("sh

ow").innerHTML = "Your Grade : D"; ow").innerHTML = "Your Grade : D";   

•         if(score >= 60 && score < 70)  if(score >= 60 && score < 70)    

•                 document.getElementById("shdocument.getElementById("show").innerHTML = "Your Grade : C";  ow").innerHTML = "Your Grade : C";  

•         if(score >= 70 && score < 80)  if(score >= 70 && score < 80)  

Page 27: งานนำเสนอ1อ ทรงศักดิ์

•                 document.getElementById("show").innerHTdocument.getElementById("show").innerHTML = "Your Grade : b";  ML = "Your Grade : b";  

•         if(score >= 80)  if(score >= 80)  •                 document.getElementById("show").inndocument.getElementById("show").inn

erHTML = "Your Grade : A";  erHTML = "Your Grade : A";  •         if(isNaN(score))  if(isNaN(score))  •                 document.getElementById("show").inndocument.getElementById("show").inn

erHTML = "Input Incorrect";  erHTML = "Input Incorrect";  •         if(score == "")  if(score == "")  •                 document.getElementById("show").inndocument.getElementById("show").inn

erHTML = "Input Score";  erHTML = "Input Score";  • }  }  • </script>  </script>  • ใส ใส

คะแนนคะแนน  : <input id="score" type="text" name=: <input id="score" type="text" name="score" />  "score" />  

• <input type="button" value="<input type="button" value="ดด เกรดเกรด"" onclick="useif()" />   onclick="useif()" />  

• <span id="show"></span> <span id="show"></span> • ใส คะแนน ใส คะแนน : :   

Page 28: งานนำเสนอ1อ ทรงศักดิ์

โปรแกรมนรบคำคะแนนมำจำกกำร id ท มชอวำ score นนคอจำกใน text นนเอง จำก

นนเรำใช if เพอตรวจสอบไปแตละเกรด จะเหน วำเรำใชแต if ตำมหลง if มแคคำำสงเดยว ไม

ตองใสวงเลบปกกำครอบกได โปรแกรมนจะ ตรวจสอบทก if นนคอตรวจสอบวำนอยกวำ 50

ตอไป ก มำกกวำ 50 และ นอยกวำ 60 หรอไม และตรวจสอบไปเรอย ๆ ทก ๆ เกรดถำคะแนน

นอยกวำ 50 แลวปรน F ออกมำ แตกตองตรวจ สอบวำเปนเกรด D C B หรอ A หรอไม แลวก

ตองตรวจสอบ isNaN นนคอเปนตวเลขหรอไมและกตรวจสอบวำไดกรอกขอมลเขำมำหรอไม

Page 29: งานนำเสนอ1อ ทรงศักดิ์

if else if else ใน ใน JavascriptJavascript

• if(condition){   if(condition){   •         statement 1;  statement 1;  •         statement 2;  statement 2;  •         ...  ...  • }  }  • else{  else{  •         statement 1;  statement 1;  •         statement 2;  statement 2;  •         ...  ...  • }  statement 1;statement 2;...statement }  statement 1;statement 2;...statement

1;statement 2;... 1;statement 2;... โปรแกรมจะเข ำส กำรโปรแกรมจะเข ำส กำร ทำำงำนในบลอก ทำำงำนในบลอก else else ได กต อเม อ กำรทำำงำน ได กต อเม อ กำรทำำงำน

ใน ใน if if เป นเทจเป นเทจ

Page 30: งานนำเสนอ1อ ทรงศักดิ์

ตวอย ำงกำรใช ตวอย ำงกำรใช if else if else ใน ในJavascriptJavascript• <script language="javascript" type="te<script language="javascript" type="te

xt/javascript">  xt/javascript">  • function useifelse(){  function useifelse(){  •         var score = document.getElementvar score = document.getElement

ById("score2").value;  ById("score2").value;  •         if(score < 50) document.getElemeif(score < 50) document.getEleme

ntById("show2").innerHTML = "Your GrntById("show2").innerHTML = "Your Grade : F";  ade : F";  

•         else{  else{  •                 if(score < 60) document.getEif(score < 60) document.getE

lementById("show2").innerHTML = "YoulementById("show2").innerHTML = "Your Grade : D";  r Grade : D";  

•                 else{  else{  •                         if(score < 70) documentif(score < 70) document

.getElementById("show2").innerHTML =.getElementById("show2").innerHTML = "Your Grade : C";   "Your Grade : C";  

•                         else{  else{  •                                 if(score < 80)  if(score < 80)  

Page 31: งานนำเสนอ1อ ทรงศักดิ์

•                                         document.getEldocument.getElementById("show2").innerHTML = "YouementById("show2").innerHTML = "Your Grade : B";  r Grade : B";  

•                                 else{   else{   •                                         if(isNaN(score))if(isNaN(score))

    •                                                 document.document.

getElementById("show2").innerHTML = getElementById("show2").innerHTML = "Input Incorrect";  "Input Incorrect";  

•                                         else document.else document.getElementById("show2").innerHTML = getElementById("show2").innerHTML = "Your Grade : A";  "Your Grade : A";  

•                                 }  }  •                         }  }  •                 }  }  •         }  }  •         if(score == "") document.getElemeif(score == "") document.getEleme

ntById("show2").innerHTML = "Input ScntById("show2").innerHTML = "Input Score";  ore";  

• }  }  • </script>  </script>  • ใส ใส

คะแนนคะแนน  : <input id="score2" type="text: <input id="score2" type="text" name="score" />  " name="score" />  

• <input type="button" value="<input type="button" value="ดด เกรดเกรด"" onclick="useifelse()" />   onclick="useifelse()" />  

• <span id="show2"></span>  onclick="<span id="show2"></span>  onclick="useifelse()" /> useifelse()" /> ใส คะแนน ใส คะแนน : :

Page 32: งานนำเสนอ1อ ทรงศักดิ์

โปรแกรมนเรำใช โปรแกรมนเรำใช if else if else ตอนแรกกตอนแรกก ตรวจสอบว ำนอยกว ำ ตรวจสอบว ำนอยกว ำ 50 50 หรอไม ถ ำใช ก หรอไม ถ ำใช ก

ปรน ปรน F F ออกมำ แตถ ำไมใชก ไปทำำท ออกมำ แตถ ำไมใชก ไปทำำท else else ใน ใน else else กไปตรวจสอบ กไปตรวจสอบ if if ในใน else else อกท อกท

หรอท เร ยกก นว ำ หรอท เร ยกก นว ำ if if ซอน ซอน if if นนเอง จำก นนเอง จำก if if ซอน ซอน if if เรำก สำมำรถลดร ปกลำยเปนเรำก สำมำรถลดร ปกลำยเปน

โปรแกรมทสำมนนคอ โปรแกรมทสำมนนคอ if else if if else if

Page 33: งานนำเสนอ1อ ทรงศักดิ์

if else if if else if ใน ใน JavascriptJavascript• if(condition1){   if(condition1){   •         statement 1;  statement 1;  •         statement 2;  statement 2;  •         ...  ...  • }  }  • else if(condition2){   else if(condition2){   •         statement 1;  statement 1;  •         statement 2;  statement 2;  •         ...  ...  • }  }  • else{  else{  •         statement 1;  statement 1;  •         statement 2;  statement 2;  •         ...  ...  • }  statement 1;statement }  statement 1;statement

2;...statement 1;statement 2;...statement 1;statement 2;...statement 1;statement 2;... 2;...statement 1;statement 2;...

กำรใช กำรใช if else if if else if จะทำำกำรตรวจสอบ จะทำำกำรตรวจสอบcondition condition แตละอ น ถ ำอ นไหนเป น แตละอ น ถ ำอ นไหนเป น

จร ง ก จะท ำำงำนในบลอกนน จร ง ก จะท ำำงำนในบลอกนน

Page 34: งานนำเสนอ1อ ทรงศักดิ์

• <script language="javascript" type="te<script language="javascript" type="text/javascript">  xt/javascript">  

• function useifelseif(){  function useifelseif(){  •         var score = document.getElementvar score = document.getElement

ById("score3").value;  ById("score3").value;  •         if(score == "") document.getElemeif(score == "") document.getEleme

ntById("show3").innerHTML = "Input ScntById("show3").innerHTML = "Input Score";  ore";  

•         else if(isNaN(score)) document.getelse if(isNaN(score)) document.getElementById("show3").innerHTML = "InElementById("show3").innerHTML = "Input Incorrect";  put Incorrect";  

•         else if(score < 50) document.getEelse if(score < 50) document.getElementById("show3").innerHTML = "YoulementById("show3").innerHTML = "Your Grade : F";  r Grade : F";  

•         else if(score < 60) document.getEelse if(score < 60) document.getElementById("show3").innerHTML = "YoulementById("show3").innerHTML = "Your Grade : D";  r Grade : D";  

•         else if(score < 70) document.getEelse if(score < 70) document.getElementById("show3").innerHTML = "YoulementById("show3").innerHTML = "Your Grade : C";  r Grade : C";  

•         else if(score < 80) document.getEelse if(score < 80) document.getElementById("show3").innerHTML = "YoulementById("show3").innerHTML = "Your Grade : B";  r Grade : B";  

•         else document.getElementById("shelse document.getElementById("show3").innerHTML = "Your Grade : A"; ow3").innerHTML = "Your Grade : A";   

• }  }  • </script>  </script>  • ใส ใส

คะแนนคะแนน  : <input id="score3" type="text: <input id="score3" type="text" name="score" />  " name="score" />  

• <input type="button" value="<input type="button" value="ดด เกรดเกรด"" onclick="useifelseif()" />   onclick="useifelseif()" />  

• <span id="show3"></span>  onclick="<span id="show3"></span>  onclick="useifelseif()" /> useifelseif()" /> ใส คะแนน ใส คะแนน : : Your Grade : Your Grade : FF

Page 35: งานนำเสนอ1อ ทรงศักดิ์

โปรแกรมนเปนการใช โปรแกรมนเปนการใช if else if if else if เพอตรวจเพอตรวจ สอบนอยกวา สอบนอยกวา 50 50 หรอไมถาไมกไปตรวจอนทหรอไมถาไมกไปตรวจอนท

สอง ถานอยกวา สอง ถานอยกวา 60 60 กทำาการปรน กทำาการปรน D D ออกมา ออกมา แลวจบโปรแกรม ตางจากโปรแกรมแรกทตอง แลวจบโปรแกรม ตางจากโปรแกรมแรกทตอง

ตรวจทก ตรวจทก if if แมจะ ปรนเกรดออกมาแลว และ แมจะ ปรนเกรดออกมาแลว และ เปนการลดรปจากโปรแกรมทสอง จากการใช เปนการลดรปจากโปรแกรมทสอง จากการใช if if

ซอนกนหลาย ๆ ครง ทำาใหโปรแกรมดงายขน ซอนกนหลาย ๆ ครง ทำาใหโปรแกรมดงายขน

Page 36: งานนำเสนอ1อ ทรงศักดิ์

3.5 3.5 คำาส งการเล อกทำาแบบคำาส งการเล อกทำาแบบ SWITCHSWITCH

คำาสงคำาสง switch switch ใชเพอเลอกทำาคำาสงใดคำาสงใชเพอเลอกทำาคำาสงใดคำาสง หนงตามตองการ โดยมทางเลอกใหทำาคำาสง หนงตามตองการ โดยมทางเลอกใหทำาคำาสง

หลาย ๆ ทาง คาตวแปรจะทำาหนาทควบคมคำา หลาย ๆ ทาง คาตวแปรจะทำาหนาทควบคมคำาสงสง switch switch คำาสงคำาสง switch switch และคำาสงและคำาสง if if เปนคำาสงเปนคำาสง

เลอกทำาเชนเดยวกนแตตางกนทรปแบบเงอนไข เลอกทำาเชนเดยวกนแตตางกนทรปแบบเงอนไข ตอไปนเปนรปแบบของการเลอกทำาแบบ ตอไปนเปนรปแบบของการเลอกทำาแบบ switch switch

Page 37: งานนำเสนอ1อ ทรงศักดิ์

การเลอกทำาแบบการเลอกทำาแบบ switch switch มวธเลอกทำาโดยมวธเลอกทำาโดยการเปรยบเทยบคาของการเปรยบเทยบคาของ switch switch กบคาในกบคาในแตละแตละ case case ถามคาเทากนถามคาเทากน statement statement ของของ case case นนๆ จะทำางาน และถาคาของ นนๆ จะทำางาน และถาคาของ switch switch ไมเทากบคาในไมเทากบคาใน case case ใด ๆ เลย ใด ๆ เลย statement statement ของของ default default กจะทำางาน กจะทำางาน ขอสงเกต ขอสงเกต

Variable Variable และและ Constant Constant ทใชสำาหรบเปรยบทใชสำาหรบเปรยบเทยบในการเลอกทำาแบบเทยบในการเลอกทำาแบบ switch switch จะตองมชนดจะตองมชนดเปนเปน int int และและ char char เทานน เทานน

Page 38: งานนำเสนอ1อ ทรงศักดิ์

ตวอยางโปรแกรม ตวอยางโปรแกรม การใชคำาสงเลอกทำาการใชคำาสงเลอกทำาแบบแบบ switch switch • #include <stdio.h> #include <stdio.h> • main() main() • { { • int ch; clrscr(); int ch; clrscr(); • printf(" Menu \n"); printf(" Menu \n"); • printf("===================\n"); printf("===================\n"); • printf(" 1 :Create Data \n"); printf(" 1 :Create Data \n"); • printf(" 2 :Display Data \n"); printf(" 2 :Display Data \n"); • printf(" 3 :Append Data \n"); printf(" 3 :Append Data \n"); • printf(" 4 :Edit Data \n"); printf(" 4 :Edit Data \n"); • printf(" 5 :Quit \n"); printf(" 5 :Quit \n"); • printf("===================\n"); printf("===================\n"); • printf("Please select <1, 2, 3, 4, 5 > ==> "); printf("Please select <1, 2, 3, 4, 5 > ==> ");

scanf("%d", & ch); scanf("%d", & ch); • switch (ch) switch (ch) • { case 1: printf("You take choice 1:Create Data { case 1: printf("You take choice 1:Create Data

\n"); \n"); • break; break;

Page 39: งานนำเสนอ1อ ทรงศักดิ์

• case 2: printf("You take chaoice 2:Display case 2: printf("You take chaoice 2:Display Data\n"); Data\n");

• break; break; • case 3: printf("You take choice 3:Append Data case 3: printf("You take choice 3:Append Data

\n"); \n"); • break; break; • case 4: printf("You take choice 4: Edit Data \n"); case 4: printf("You take choice 4: Edit Data \n"); • break; break; • case 5: printf("You take choice 5:Quit\n"); case 5: printf("You take choice 5:Quit\n"); • break; break; • default: printf("You take choice the default: printf("You take choice the

other:default"); other:default"); • return(0); return(0); • } } • } } • #include <stdio.h> #include <stdio.h> • void main(void) void main(void) • { { • float Fnum1=1.0, Fnum2=1.0; float Fnum1=1.0, Fnum2=1.0; • char op; char op; • clrscr(); clrscr(); • while ( !(Fnum1==0.0 && Fnum2==0.0) ) while ( !(Fnum1==0.0 && Fnum2==0.0) ) • { printf("\n\nEnter number, operator, { printf("\n\nEnter number, operator,

number\n"); number\n"); • scanf("%f %c %f", &Fnum1, &op, &Fnum2); scanf("%f %c %f", &Fnum1, &op, &Fnum2); • switch ( op ) switch ( op ) • { case '+' : printf(" = %f", Fnum1 + Fnum2); { case '+' : printf(" = %f", Fnum1 + Fnum2); • break; break; • case '-' : printf(" = %f", Fnum1 - Fnum2); case '-' : printf(" = %f", Fnum1 - Fnum2); • break; break; • case '*' : case '*' :

Page 40: งานนำเสนอ1อ ทรงศักดิ์

•case 'x' : printf(" = %f", Fnum1 * case 'x' : printf(" = %f", Fnum1 * Fnum2); Fnum2);

•break; break; •case '/' : case '/' : •case '\\': printf(" = %f", Fnum1 / case '\\': printf(" = %f", Fnum1 /

Fnum2); Fnum2); •break; break; •default : printf("Unknown operator"); default : printf("Unknown operator"); • } // end switch } // end switch • } // end while } // end while • } // end main } // end main

Page 41: งานนำเสนอ1อ ทรงศักดิ์

3.6 3.6 การควบคมการทำาซ ำาด วยค ำาการควบคมการทำาซ ำาด วยค ำา สง สง forfor

คำาสงทใชวนลปนนกคอคำาสงคำาสงทใชวนลปนนกคอคำาสง for for ซงคำาสงนซงคำาสงนเขาใจไดดจะทำาใหใชงานมนไดสะดวกสบายเขาใจไดดจะทำาใหใชงานมนไดสะดวกสบาย

ขน คำาสงนมเงอนไขในการใชงานอยพอสมควร ขน คำาสงนมเงอนไขในการใชงานอยพอสมควร

Page 42: งานนำเสนอ1อ ทรงศักดิ์

คำาสงคำาสง for for นนม นนม 3 3 สวนทตองกำาหนด คอ สวนทตองกำาหนด คอ

1.1.) ) คาตวแปรเรมตน ใชกำาหนดคาเรมตนของ คาตวแปรเรมตน ใชกำาหนดคาเรมตนของ ตวแปรทจะใชในการควบคม การวนลป ตวแปรทจะใชในการควบคม การวนลป

2.2.) ) เงอนไข ใชกำาหนดเงอนไขการวนลป เงอนไข ใชกำาหนดเงอนไขการวนลป

3.3.) ) เปลยนแปลงคาตวแปร ใชในการเพมหรอ เปลยนแปลงคาตวแปร ใชในการเพมหรอ ลดคาของตวแปรทใชในการควบคม การวน ลดคาของตวแปรทใชในการควบคม การวน

ลป ลป

Page 43: งานนำเสนอ1อ ทรงศักดิ์

อธบายโปรแกรม จากโคด อธบายโปรแกรม จากโคดโปรแกรมนจะเป นการคำานวณหาคาผลบวกโปรแกรมนจะเป นการคำานวณหาคาผลบวก

ของ ของ 1 1 ถง ถง 10 (1+2+3+4+5+6+7+8+9+10) 10 (1+2+3+4+5+6+7+8+9+10) ซงใช ล ป ซงใช ล ป for for โดยมการก ำาหนดตวแปร โดยมการก ำาหนดตวแปร i i ไว ไว

เป น เป น 1 1 เม อเร มเข ามาทล ป ส วนเง อนไขคอ เม อเร มเข ามาทล ป ส วนเง อนไขคอ i i <= 10 <= 10 คอ เราต องการใหล ปน วนไป คอ เราต องการใหล ปน วนไป 10 10 ครง ครง

สวน สวน i++ i++ เป นการเพ มค าเป นการเพ มค า i i ทละ ทละ 1 1 เม อจบรอบเม อจบรอบ การทำางานในแตละรอบนนเอง การทำางานในแตละรอบนนเอง

i = 1, sum = 0 + 1 i = 1, sum = 0 + 1 จบรอบแรก จบรอบแรก sum = 1sum = 1i = 2, sum = 1 + 2 i = 2, sum = 1 + 2 จบรอบทสอง จบรอบทสอง sum = 3sum = 3i = 3, sum = 3 + 3 i = 3, sum = 3 + 3 จบรอบทสาม จบรอบทสาม sum = 6sum = 6i = 4, sum = 6 + 4 i = 4, sum = 6 + 4 จบรอบทส จบรอบทส sum = 10sum = 10

i = 5, sum = 10 + 5 i = 5, sum = 10 + 5 จบรอบทหา จบรอบทหา sum = 15sum = 15i = 6, sum = 15 + 6 i = 6, sum = 15 + 6 จบรอบทหก จบรอบทหก sum = sum =

2121i = 7, sum = 21 + 7 i = 7, sum = 21 + 7 จบรอบทเจ ด จบรอบทเจ ด sum = sum =

2828i = 8, sum = 28 + 8 i = 8, sum = 28 + 8 จบรอบทแปด จบรอบทแปด sum = sum =

3636i = 9, sum = 36 + 9 i = 9, sum = 36 + 9 จบรอบทเกา จบรอบทเกา sum = sum =

4545i = 10, sum = 45 + 10 i = 10, sum = 45 + 10 จบรอบทสบ จบรอบทสบ sum = sum =

5555

Page 44: งานนำเสนอ1อ ทรงศักดิ์

จะเหนวาในรอบสดทายคอ รอบทสบนนคา จะเหนวาในรอบสดทายคอ รอบทสบนนคา i++ i++ ยงคงทำางานอยคอ จะไดคา ยงคงทำางานอยคอ จะไดคา i i คาสดทายเปน คาสดทายเปน11 11 แตพอนำาไปเชคทเงอนไขแลวทำาใหเงอนไขแตพอนำาไปเชคทเงอนไขแลวทำาใหเงอนไขนนผดเพราะนนผดเพราะ i <= 10 i <= 10 นนเองจง ทำาใหออกจา นนเองจง ทำาใหออกจา

กลป นอกจากนยงมการใชงานในรปแบบอนอก กลป นอกจากนยงมการใชงานในรปแบบอนอก

Page 45: งานนำเสนอ1อ ทรงศักดิ์

กฎการใชค ำาส ง กฎการใชค ำาส ง forfor

• 1. 1. คาท เพ มข นในแตละรอบของตวแปรควบคมค าท เพ มข นในแตละรอบของตวแปรควบคม นนจะเป นเทาไรกได เช น นนจะเป นเทาไรกได เช น

• for(int x=0 ; x<=100 ; x=x+5)for(int x=0 ; x<=100 ; x=x+5)• 2. 2. คาของตวแปรควบคมอาจถกก ำาหนดใหลดลงคาของตวแปรควบคมอาจถกก ำาหนดใหลดลง

กได เช น กได เช น• for(int x=100 ; x>0 ; x- -) for(int x=100 ; x>0 ; x- -) • 3. 3. ตวแปรควบคมอาจเป นชนดต วแปรควบคมอาจเป นชนด character character ได ได

เช นเช น• for(char ch =’a’ ; ch<=’z’ ; ch++) for(char ch =’a’ ; ch<=’z’ ; ch++) • 4. 4. ตวแปรควบคมสามารถมไดมากกวา ตวแปรควบคมสามารถมไดมากกวา 1 1 ตวแปร ตวแปร

เช นเช น • for(int x=0,y=0 ; x+y<100 ; x++,y++) for(int x=0,y=0 ; x+y<100 ; x++,y++) • 5 . 5 . ถามการละบางส วนหรอทกสวนของถามการละบางส วนหรอทกสวนของ

พารามเตอร ในวงเล บจะเป นการส งให พารามเตอร ในวงเล บจะเป นการส งให for for ทำางานไมร จบ เช น ทำางานไมร จบ เช น for( ; ; )for( ; ; )

System.out.println(“ Hello”); System.out.println(“ Hello”);

Page 46: งานนำเสนอ1อ ทรงศักดิ์

6. 6. ในคำาส ง ในคำาส ง for for สามารถมค ำาส ง สามารถมค ำาส ง for for ซอนอยภายในไดอ ก เช น ซอนอยภายในไดอ ก เช น

for(int x=1 ; x<=3 ; x++)for(int x=1 ; x<=3 ; x++){ { System.out.println(“ x = ”+x);System.out.println(“ x = ”+x);for(int y=1 ; x<=5 ; y++)for(int y=1 ; x<=5 ; y++)System.out.println(“ y = ”+y);System.out.println(“ y = ”+y);}}

Page 47: งานนำเสนอ1อ ทรงศักดิ์

3.7 3.7 ลป ลป WHILEWHILE

คำาส ง คำาส ง while while เปนค ำาส ง ท ใชส ำาหร บกา เปนค ำาส ง ท ใชส ำาหร บการวนลปรวนลป ซง ซง flowchart flowchart สำาหร บค ำาส ง สำาหร บค ำาส งwhile while นน สามารถดได ตามร ปด านล าง นน สามารถดได ตามร ปด านล าง

จาก จาก flowchart flowchart ดานบน คำาส ง ดานบน คำาส งwhile while จะวนลปโดยการเชค จะวนลปโดยการเชค condition condition

ซงถ าเปนจร ง จ งจะท ำาการวนลปใน ซงถ าเปนจร ง จ งจะท ำาการวนลปในwhile while ดงน น ค ำาส ง ดงน น ค ำาส ง while while จะวนกรอบนน จะวนกรอบนน

กข นอย ก บ กข นอย ก บ condition condition แตเราสามารถแตเราสามารถ หยด การวนดวยค ำาส ง หยด การวนดวยค ำาส ง break break

Page 48: งานนำเสนอ1อ ทรงศักดิ์

ตวอย างน ก ำาหนด ตวอย างน ก ำาหนด i = 0 i = 0 และ กำาหนด และ กำาหนดnum = 50 num = 50 แลว ท ำาการเข าส วงวน แลว ท ำาการเข าส วงวน while while

เม อเปนจร ง ให ลดคา เม อเปนจร ง ให ลดคา num num ลงหนงตอลงหนงตอ รอบ และเพ มคา รอบ และเพ มคา i i ขนท ละหนงต อรอบ เม อ ขนท ละหนงต อรอบ เม อ

เปนเท จ ก ปร นคา เปนเท จ ก ปร นคา i i กบ กบ num num ลาสดออกลาสดออก มา ผลทออกมาคอ มา ผลทออกมาคอ i = 10 i = 10 และ และ num = 40 num = 40

นนแสดงว า เข าส วงวน นนแสดงว า เข าส วงวน while 10 while 10 รอบรอบ

Page 49: งานนำเสนอ1อ ทรงศักดิ์

ลปท ท ำางานไม ร จบ ลปท ท ำางานไม ร จบ Infinite Infinite LoopsLoops• infinite loop (infinite loop ( บางคร งเร ยกว า บางคร งเร ยกว า endless loop) endless loop)

เป นชนของคำาส งท ขาดฟงก ชนออก ดงน นจะม เป นชนของคำาส งท ขาดฟงก ชนออก ดงน นจะม การซำาไมร จบ ในโปรแกรมคอมพวเตอร การซำาไมร จบ ในโปรแกรมคอมพวเตอร loop loop

เป นอนกรมของคำาส งท ได ร บการซำาอยางต อเป นอนกรมของคำาส งท ได ร บการซำาอยางต อ เน องจนกระทงในเง อนไขแนนอนมาถง ตาม เน องจนกระทงในเง อนไขแนนอนมาถง ตาม

ปกต กระบวนการแนนอนไดร บการกระทำา เช น ปกต กระบวนการแนนอนไดร บการกระทำา เช น การนำาหนวยของขอมลและเปล ยนแปลง หลง การนำาหนวยของขอมลและเปล ยนแปลง หลง

จากนน บางเง อนไขไดร บการตรวจสอบ เชน จากนน บางเง อนไขไดร บการตรวจสอบ เชน ตวน ำามาถงต วเลขกำาหนด ถาการปรากฏของ ตวน ำามาถงต วเลขกำาหนด ถาการปรากฏของ

เง อนไขเจาะจงไมสามารถมาถง ค ำาส งต อไปใน เง อนไขเจาะจงไมสามารถมาถง ค ำาส งต อไปในอนกรมบอกโปรแกรมใหยอนกลบไปทค ำาส งแรกอนกรมบอกโปรแกรมใหยอนกลบไปทค ำาส งแรก

และซำาอนกรม ซงตามปกตจะต อไปจนกระทง และซำาอนกรม ซงตามปกตจะต อไปจนกระทง โปรแกรมหยดอยางอ ตโนมต หล งชวงเวลา โปรแกรมหยดอยางอ ตโนมต หล งชวงเวลา

แนนอนหนง หร อระบบปฏบ ต การหยดโปรแกรม แนนอนหนง หร อระบบปฏบ ต การหยดโปรแกรมดวยคามผดพลาดดวยคามผดพลาด

ตามปกต ผลลพธ ตามปกต ผลลพธ infinite loop infinite loop จากความผดจากความผด พลาดของโปรแกรม ตวอย าง เม อเง อนไข พลาดของโปรแกรม ตวอย าง เม อเง อนไข

สำาหร บการออกเขยนไมถ กต อง ความมงหมาย สำาหร บการออกเขยนไมถ กต อง ความมงหมาย ใชส ำาหร บ ใชส ำาหร บ infinite loop infinite loop รวมถงโปรแกรมทได รวมถ งโปรแกรมทได

ร บการสมมตใหท ำางานอยางต อเน อง เช น การ ร บการสมมตใหท ำางานอยางต อเน อง เช น การทดลองผลตภณฑหร อในโปรแกรมสำาหร บระบบทดลองผลตภณฑหร อในโปรแกรมสำาหร บระบบฝงต ดฝ งต ด pseudo-infinite loop pseudo-infinite loop เป นส งหนงท ด เหมอนจะเป นส งหนงท ด เหมอนจะ

ไมร จบ แตจะหยดอยางแนนอนในบางจด ไมร จบ แตจะหยดอยางแนนอนในบางจด

Page 50: งานนำเสนอ1อ ทรงศักดิ์

3.8 3.8 ลป ลป do – whiledo – while

•do... while do... while  มล กษณะการใชงานเหมอน มล กษณะการใชงานเหมอนwhile (condition) {} while (condition) {} เพ ยงแต ค ำาส ง เพ ยงแต ค ำาส ง do.. while do.. while นน ในคร งแรกจะทำาในบลอก นน ในคร งแรกจะทำาในบลอก

คำาส ง คำาส ง do.. while do.. while กอนคอยทำาการเชคก อนคอยทำาการเชค เง อนไขเม อจบรอบนง เชน เง อนไขเม อจบรอบนง เชน

•$a = 3; $a = 3; •do { do { •print $a . ", "; print $a . ", "; •$a--; $a--; • } while ($a <3); } while ($a <3);

Page 51: งานนำเสนอ1อ ทรงศักดิ์

เม อด ท ตวแปร เม อด ท ตวแปร $a $a จะมคาคอ จะมคาคอ 3 3 และในและใน การเชคเง อนไขในคำาส ง การเชคเง อนไขในคำาส ง while while คอเชคว าคอเชคว า

ถา ถา $a < 3 $a < 3 ใหท ำาในบลอกค ำาส ง แตใน ใหท ำาในบลอกค ำาส ง แตในกรณน เปนการใชค ำาส งกรณน เปนการใชค ำาส ง do... while do... while ดงน น ดงน น

เม อก ำาหนดคาใหต วแปร เม อก ำาหนดคาใหต วแปร $a = 3 $a = 3 กจะเขาก จะเขา ทำาในบลอกค ำาส ง ทำาในบลอกค ำาส ง do... while do... while ทนท โดย ทนท โดย

ไม ได ท ำาการตรวจสอบเง อนไขกอน เม อ ไม ได ท ำาการตรวจสอบเง อนไขกอน เม อ ทำาค ำาส งในบลอกเสร จแล ว ก ท ำาการลบคา ทำาค ำาส งในบลอกเสร จแล ว ก ท ำาการลบคา

$a $a ไปหนงคา ด งน น ณ ตอนนตวแปร ไปหนงคา ด งน น ณ ตอนนตวแปร $a $a = 2 = 2 แลวคอยทำาการเชคเง อนไขในคำาส ง แลวคอยทำาการเชคเง อนไขในคำาส งwhile while ตามทก ำาหนดมา ตามทก ำาหนดมา

Page 52: งานนำเสนอ1อ ทรงศักดิ์

โครงสร างการเข ยนโปรแกรมแบบโครงสร างการเข ยนโปรแกรมแบบ วนซำาโดยใชค ำาส ง วนซำาโดยใชค ำาส ง do-whiledo-while

• ร ปแบบของการเขยน ร ปแบบของการเขยน code code สำาหร บโปรแกรมสำาหร บโปรแกรม แบบวนซำาท ใช แบบวนซำาท ใช do-while do-while สามารถเข ยนใหอย สามารถเข ยนใหอย

ในร ปท วไปไดด งน ในร ปท วไปไดด งน • dodo

statementstatementwhile ( while ( เง อนไข เง อนไข ));;

• ตวอยางของโครงสร าง ตวอยางของโครงสร าง do-while do-while สามารถเข ยนสามารถเข ยนไดด งน ได ด งน

• sum = 0.0;scanf(“%f”, &x);do { sum += x; sum = 0.0;scanf(“%f”, &x);do { sum += x; scanf(“%f”, &x); }while (x > 0.0); scanf(“%f”, &x); }while (x > 0.0);โปรแกรมโปรแกรม

ขางต นจะทำาการอ านคา ขางต นจะทำาการอ านคา keyboard keyboard เม อ เม อ User User พมพค าท มค ามากกวาศนย กจะท ำาการบวกคา พมพค าท มค ามากกวาศนย กจะท ำาการบวกคา

เหล าน ไปท ต วแปร เหล าน ไปท ต วแปร sum sum จนกระทง จนกระทง User User พมพ พมพ ตวเลข ตวเลข 0 0 หรอค าท นอยกว า ศนย ท ำาให เง อนไข หรอค าท นอยกว า ศนย ท ำาให เง อนไข เป นเทจ และโปรแกรมจงจะออกจากโครงสร าง เป นเทจ และโปรแกรมจงจะออกจากโครงสร าง

do-while do-while

Page 53: งานนำเสนอ1อ ทรงศักดิ์

3.9 3.9 ลปซอนลป ลปซอนลป ((Nested Loops)Nested Loops)

ในการเข ยนโปรแกรมสามารถนำาค ำาส งล ปแบบในการเข ยนโปรแกรมสามารถนำาค ำาส งล ปแบบ ตางๆ ใหมาทำางานซอนกนได เร ยกว าล ปแบบซอนล ป ตางๆ ใหมาทำางานซอนกนได เร ยกว าล ปแบบซอนล ป

ดงต วอย างต อไปน ดงต วอย างต อไปน    Public class Nestedloop1 {Public class Nestedloop1 {                                          Public static void Public static void

mainmain((StringString[ ] [ ] argsargs))                                          {{                                                      forfor((int i int i = = 1; i < 1; i < = =

3; i 3; i ++)++)                                                                          forfor((int int

j j = = 1; j < 1; j < = = 3; j 3; j ++)++)                                                                                  

              SystemSystem..outout..printprint((j j + + “ ““ “));;                                          }}                    }          }                                    จากตวอย างโปรแกรมล ปแรกจะเป นล ปจากตวอย างโปรแกรมล ปแรกจะเป นล ป

ของตวแปรของตวแปร  I I โดยภายในลปจะทำาล ปของโดยภายในลปจะทำาล ปของตวแปรตวแปร  j j  จำานวน จำานวน 3 3 ครงคร ง    ทำาให การทำาให การทำางานทำางานSystem.out.print (j+ “  “) System.out.print (j+ “  “) มการทำางานมการทำางาน

ทงหมด ทงหมด 9 9 ครงคร ง

Page 54: งานนำเสนอ1อ ทรงศักดิ์

3.10 3.10 คำาส ง คำาส ง break break และ และcontinuecontinue• break statement ถาเราจ ำาเป นต องออกจากล ป โดยไมต องรอ

ใหครบรอบ เราก สามารถทำาได โดยใช break; • int n;

string s;

s = Console.ReadLine();

while(s != "") {    n = Int32.Parse(s);    if(n < 0) {        break;    }

    s = Console.ReadLine();}

• จร ง ๆ แล ว สามารถเข ยนใหส นลง เป นอย างน ก ได • int n;

string s;

while((s = Console.ReadLine()) != "") {    n = Int32.Parse(s);    if(n < 0) {        break;    }}

Page 55: งานนำเสนอ1อ ทรงศักดิ์

• continue statementcontinue statement การใชการใช break; break; จะจะ เป นการออกจากลปไปทนท แต ถ าต องการให เป นการออกจากลปไปทนท แต ถ าต องการให มนแคหยดการวนลปรอบนน และกลบไปทำางาน มนแคหยดการวนลปรอบนน และกลบไปทำางาน

ใน ใน loop loop ตอ เราก จะใช ตอ เราก จะใช continue; continue; • int i = 0, n, max, sum = 0;int i = 0, n, max, sum = 0;

max = Int32.Parse(Console.ReadLine());max = Int32.Parse(Console.ReadLine());

while(i < max) {while(i < max) {    n = Int32.Parse(Console.ReadLine());    n = Int32.Parse(Console.ReadLine());    if(n < 0) {    if(n < 0) {        continue;        continue;    }    }    sum += n;    sum += n;    i++;    i++;}}

Console.WriteLine("average is {0}", sum / Console.WriteLine("average is {0}", sum / max); max);

Page 56: งานนำเสนอ1อ ทรงศักดิ์

ในการเข ยนโปรแกรมสามารถนำาค ำาในการเข ยนโปรแกรมสามารถนำาค ำา สงลปแบบตางๆ ใหมาท ำางานซอนกนได สงลปแบบตางๆ ใหมาท ำางานซอนกนได

เร ยกว าล ปแบบซอนลปเร ยกว าล ปแบบซอนลปด งต วอย างต อไปนด งต วอย างต อไปนPublic class Nestedloop1 {Public static Public class Nestedloop1 {Public static

void main(String[ ] args){for(int i = 1; void main(String[ ] args){for(int i = 1; i < = 3; i ++)for(int j = 1; j < = 3; j +i < = 3; i ++)for(int j = 1; j < = 3; j ++)System.out.print(j + “ “);}}+)System.out.print(j + “ “);}}

Page 57: งานนำเสนอ1อ ทรงศักดิ์

จากตวอย างโปรแกรมลปแรกจะเปนจากตวอย างโปรแกรมลปแรกจะเปน ลปของต วแปร ลปของต วแปร I I โดยภายในลปจะทำาล ปโดยภายในลปจะทำาล ป

ของตวแปร ของตวแปร j j จ ำานวน จ ำานวน 3 3 ครง ท ำาให การ ครง ท ำาให การ ทำางาน ทำางาน System.out.print (j+“ “) System.out.print (j+“ “) มการม การ

ทำางานทงหมด ทำางานทงหมด 99ครงคร ง

Page 58: งานนำเสนอ1อ ทรงศักดิ์

โปรแกรมท โปรแกรมท 3.223.22 โปรแกรมตอไปนจะโปรแกรมตอไปนจะ เป นการนำาเคร องหมาย เป นการนำาเคร องหมาย **มาพมพเป นร ปมาพมพเป นร ป สามเหลยมทางจอภาพ โดยจะ ออกแบบโปรแกรม สามเหลยมทางจอภาพ โดยจะ ออกแบบโปรแกรม

ใหท ำางานแบบลปซอนลป โดยลปท หน งใหท ำาล ป ใหท ำางานแบบลปซอนลป โดยลปท หน งใหท ำาล ป ในหนงคร ง ล ปท สองใหท ำาล ปในสองคร งไปเร อยๆ ในหนงคร ง ล ปท สองใหท ำาล ปในสองคร งไปเร อยๆ

ในการทำาล ปแตละคร งน นจะพมพเคร องหมายในการทำาล ปแตละคร งน นจะพมพเคร องหมาย * * หนงต ว เม อท ำาล ปในครบแลวจะขนบรรทดใหม หนงต ว เม อท ำาล ปในครบแลวจะขนบรรทดใหมPublic class Star {Public static void Public class Star {Public static void

main(String[ ] args){for(int i = 1; i < main(String[ ] args){for(int i = 1; i < = 8; i ++){for(int j = 1; j < = i; j += 8; i ++){for(int j = 1; j < = i; j ++)System.out.print( “ * +)System.out.print( “ * “);System.out.print();}}} “);System.out.print();}}}

Page 59: งานนำเสนอ1อ ทรงศักดิ์

3.11 3.11 ขอควรระว งในการใชขอควรระว งในการใชค ำาส งท ำาซ ำาค ำาส งท ำาซ ำา

ในการเขยนโปรแกรมทำาลปมกจะมขอผดพลาดเกดขนในการเขยนโปรแกรมทำาลปมกจะมขอผดพลาดเกดขน เสมอ โดยโปรแกรมทเขยนขนจะคอมไพลผาน แตจะ เสมอ โดยโปรแกรมทเขยนขนจะคอมไพลผาน แตจะ

ทำางานไมถกตองตามทตองการ ขอผดพลาดนเรยก ทำางานไมถกตองตามทตองการ ขอผดพลาดนเรยกวาวา  logic error logic error                         //outcome product //outcome product will equal 3*57*……*99will equal 3*57*……*99

                                long product = 1;long product = 1;                                  int I = 3;int I = 3;                                while (i < = 100) {while (i < = 100) {                                                                product  = product * i;product  = product * i;                                                                i = i+2;i = i+2;                                }}                                                                           

System.out.print(product);System.out.print(product);                       พจารณาสวนของโปรแกรมตอไปน ซงสวนประกอบของ พจารณาสวนของโปรแกรมตอไปน ซงสวนประกอบของ

โปรแกรมหาผลคณของเลขคทอยระหวางตวเลขโปรแกรมหาผลคณของเลขคทอยระหวางตวเลข      1 1 ถง ถง 100100

Page 60: งานนำเสนอ1อ ทรงศักดิ์

จากโปรแกรมทเข ยนขนจะเห นว าจะประกาศจากโปรแกรมทเข ยนขนจะเห นว าจะประกาศตวแปรตวแปร  product product เป นประเภทเป นประเภท  long long ถาหากถาหากประกาศตวแปรนเป นประเภทประกาศตวแปรนเป นประเภท  int int จะใหค ำาตอบจะใหค ำาตอบ

ไมถ กต อง เน องจากคาผลลพธ ของ ไมถ กต อง เน องจากคาผลลพธ ของ   product product ทท ได จะมค ามากกวาจ ำานวนขอมลท ต วแปรไดจะมค ามากกวาจ ำานวนขอมลท ต วแปรแบบแบบ  integer integer  จะเก บได และถาหากมการ จะเก บได และถาหากมการประกาศตวแปรนเป นประกาศตวแปรนเป น                                long long productproduct

กจะเกดข อผ ดพลาดขนเช นก น เน องจากไมได กจะเกดข อผ ดพลาดขนเช นก น เน องจากไมได กำาหนดคาเร มต นใหก บต วแปรน ซ งจะท ำาใหไม กำาหนดคาเร มต นใหก บต วแปรน ซ งจะท ำาใหไม

สามารถคำานวณสามารถคำานวณproduct = product * I; product = product * I; ไดได จากโปรแกรมนค าต วเลขคาส งสดจะเป น จากโปรแกรมนค าต วเลขคาส งสดจะเป น 99 99 แตผ แต ผ

เข ยนโปรแกรมมโอกาสเข าใจผดโดยเข ยนในเขยนโปรแกรมมโอกาสเข าใจผดโดยเข ยนในลกษณะนได ล กษณะนได

Page 61: งานนำเสนอ1อ ทรงศักดิ์

การเข ยนโปรแกรมในลกษณะตวอยางด านการเข ยนโปรแกรมในลกษณะตวอยางด าน บนนจะเป นการคำานวณคา บนนจะเป นการคำานวณคา 3*5*7....97 3*5*7....97 เน องจากเน องจาก

ในลปส ดทายคาของในลปส ดทายคาของ  i i  มค าเป น มค าเป น 99 99 ซงท ำาใหซ งท ำาใหเง อนไขของเง อนไขของ  while while  เป นเทจ ซ งเป นขอผ ดพลาด เป นเทจ ซ งเป นขอผ ดพลาด

ในขณะตรวจสอบเง อนไข ขอผ ดพลาดลกษณะน ในขณะตรวจสอบเง อนไข ขอผ ดพลาดลกษณะนเร ยกอ กอยางหนงว าเร ยกอ กอยางหนงว า  off-by-one-erroroff-by-one-error

Page 62: งานนำเสนอ1อ ทรงศักดิ์

จากปญหาเด ยวก นน ถ าหากเขยนการ จากปญหาเด ยวก นน ถ าหากเขยนการตรวจสอบเง อนไขผดพลาดกอาจทำาให โปรตรวจสอบเง อนไขผดพลาดกอาจทำาให โปร

แกรมทำาล ปซ ำาไมร จบได อย างเชนการ แกรมทำาล ปซ ำาไมร จบได อย างเชนการเข ยนค ำาส งด งตอไปนเข ยนค ำาส งด งตอไปน

long product = 1;int I =3;While(i! = 100){ // ทำาซำาถาหาก i ไมเทากบ 100 product = product * i; i = i+2;}

จากสวนของโปรแกรมดานบนจะปรบคา I กอน ทจะทำาการคณ ซงจะทำาใหเปนการหาคาของ

5*7*9.......*99*101

Page 63: งานนำเสนอ1อ ทรงศักดิ์

จากการเข ยนโปรแกรมทผ านมาไดศกษาวธ จากการเข ยนโปรแกรมทผ านมาไดศกษาวธ การร บข อมลทางคยบอร ดมาบางแล ว โดยใช การร บข อมลทางคยบอร ดมาบางแล ว โดยใช

เมธอดในคลาสเมธอดในคลาส  Scanner Scanner ในภาษาจาวายงในภาษาจาวายง สามารถร บค าทางคย บอร ดไดอ กหลายวธ อ กวธ สามารถร บค าทางคย บอร ดไดอ กหลายวธ อ กวธ

หนงท นยมใชกน ได แก การใช หนงท นยมใชกน ได แก การใชเมธอดเมธอด  read read เป นเมธอดทอย ในเป นเมธอดทอย ในคลาสคลาส  System System การใชงานจะตองเร ยกใชแพกการใชงานจะตองเร ยกใชแพกเกจเกจ  java.io java.io และร บข อมลได จากการเขยนคำาและร บข อมลได จากการเขยนคำาส ง เป นส ง เป น  System.in.read System.in.read การใชเมธอดนจะร บการใชเมธอดนจะร บ

ขอมลเป นต วอ กษร ขอมลเป นต วอ กษร 1 1 ตว จากนนข อมลท ร บเข า ตว จากนนข อมลท ร บเข ามาจะถ กแปลงไปเป นรหสมาจะถ กแปลงไปเป นรหส  ASCII ASCII  โดยอตโนมต โดยอตโนมต การเร ยกใชค ำาส งน จะมการตรวจจบความผดการเร ยกใชค ำาส งน จะมการตรวจจบความผด

พลาดในการร บข อมลด วย ซงผ เข ยนโปรแกรม พลาดในการร บข อมลด วย ซงผ เข ยนโปรแกรมจะตองใชค ำาส งจะต องใชค ำาส ง  throws IOException throws IOException ตอจากตอจากเมธอดเมธอด  main main ดวยดวย

Page 64: งานนำเสนอ1อ ทรงศักดิ์

สมาชกสมาชก

1.1. นายธาวต ตงวรยะ เลขท นายธาวต ตงวรยะ เลขท 882.2. นางสาวนจร บญชเชด เลขท นางสาวนจร บญชเชด เลขท 2525

3.3. นางสาวกนษฐา เนตรสวาง เลขท นางสาวกนษฐา เนตรสวาง เลขท 2828

4.4. นางสาวทพยวรรณ เชอวงษ เลขท นางสาวทพยวรรณ เชอวงษ เลขท 2929

5.5. นางสาวมนสนนต ทบทมใส เลขท นางสาวมนสนนต ทบทมใส เลขท 3131

6.6. นางสาวสกานดา เฉนจณวรรณ เลขท นางสาวสกานดา เฉนจณวรรณ เลขท 3232

Page 65: งานนำเสนอ1อ ทรงศักดิ์

จบการนำาเสนอ จบการนำาเสนอ !!!!