ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 ·...

26
ชุดคำสั่งในกำรเขียนโปรแกรม

Upload: others

Post on 11-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

ชุดค ำสั่งในกำรเขียนโปรแกรม

Page 2: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

ใช้ค ำสั่งควบคุมซึ่งมี 3 รูปแบบ คือ ค ำสั่งแบบตำมล ำดับ (Sequence Control Statement) ค ำสั่งแบบมีทำงเลือก (Selection Control Statement)

ค ำสั่ง if / if_else / nested if / switch ค ำสั่งแบบท ำซ ำ (Iteration Control Statement)

ค ำสั่ง while / do_while / for

ค ำสั่ง break ค ำสั่ง continue

2

Page 3: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

ทุกค ำสั่งจะท ำงำนตำมล ำดับ โดยไม่มีกำรข้ำมค ำสั่งใด แต่ละค ำสั่งจะถูกเรียกใช้งำนเพียงครั งเดียว กำรท ำงำนจะเริ่มจำกค ำสั่งที่ 1 แล้วท ำค ำสั่งที่ 2 และถัดไปเรื่อยๆ จนครบทุกค ำสั่ง

3

โปรแกรมค ำนวณเงินโบนัส

Page 4: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

สร้ำงโปรเจ็กต์ Bonus1 สร้ำง Java Class ชื่อ Bonus_Calculator ไว้ในโปรเจ็กต์ Bonus1 สร้ำงเมธอดค ำนวณเงินโบนัส (calBonus) รับค่ำข้อมูลเงินเดือนชนิด float และคืนค่ำเงินโบนัสที่ค ำนวณได้ชนิด float สร้ำง Java Main Class ชื่อ Bonus1 ไว้ในโปรเจ็กต์ Bonus1 เพื่อเรียกใช้คลำส Bonus_Calculator

4

Page 5: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

มีกำรตรวจสอบเงื่อนไขของค ำสั่งก่อนท ำงำน เพื่อตัดสินใจเลือกทิศทำงกำรท ำงำนของโปรแกรม

จะข้ำมกำรท ำงำนของบำงชุดค ำสั่งไป มี 4 ค ำสั่งคือ ค ำสั่ง if ค ำสั่ง if…else ค ำสั่ง nested if ค ำสั่ง switch

5

Page 6: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

ควบคุมให้โปรแกรมตัดสินใจท ำงำนหรือไมท่ ำงำนในชุดค ำส่ังที่ก ำหนด ตรวจสอบจำกนิพจน์ที่ก ำหนดว่ำเป็นจริงหรือเท็จ

ถ้ำนิพจน์ เป็นจริง (true) โปรแกรมจะท ำงำนที่ชุดค ำสั่งที่อยู่ภำยใต้ค ำสั่ง if ถ้ำนิพจน์ เป็นเท็จ (false) โปรแกรมจะข้ำมไปท ำงำนที่ค ำสั่งต่อไปทันที

มีรูปแบบกำรท ำงำนดังนี if (boolean_expression) {

statements;}โดยที่

boolean_expression เป็นนิพจน์เงื่อนไข ซ่ึงมีผลกำรตรวจสอบเป็น true หรือ falsestatements เป็นชุดของค ำสั่งท่ีจะท ำงำนเมื่อเงื่อนไขที่ก ำหนดให้เป็น true

6

Page 7: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

โปรแกรมค ำนวณคะแนนร้อยละ เมื่อกดเลข 1 บนแป้นพิมพ์

7

Page 8: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

สร้ำงโปรเจ็กต์ If_Test1 สร้ำง Java Class ชื่อ ifTest_Condition ไว้ในโปรเจ็กต์ If_Test1 สร้ำงเมธอดตรวจสอบค่ำตัวเลขช่ือ checkValue รับค่ำข้อมูลตัวเลขเป็นชนิด int และ

คืนค่ำผลกำรตรวจสอบเป็นชนิด boolean สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์ If_Test1 เพื่อเรียกใช้คลำส ifTest_Condition

8

Page 9: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

ควบคุมให้โปรแกรมเลือกท ำงำนในชุดค ำสัง่ใดชุดค ำสั่งหนึ่งจำก 2 ทำงเลือก ตรวจสอบจำกนิพจน์ที่ก ำหนดว่ำเป็นจริงหรือเท็จ

ถ้ำนิพจน์ เป็นจริง (true) โปรแกรมจะท ำงำนที่ชุดค ำสั่งที่อยู่ภำยใต้ค ำสั่ง if ถ้ำนิพจน์ เป็นเท็จ (false)โปรแกรมจะท ำงำนที่ชุดค ำสั่งที่อยู่ภำยใต้ค ำสั่ง else

มีรูปแบบกำรท ำงำนดังนี if (boolean_expression) {

statement_1;} else {

statement_2;}โดยที่

boolean_expression เป็นนิพจน์เงื่อนไข ซ่ึงมีผลกำรตรวจสอบเป็น true หรือ falsestatements_1 เป็นชุดของค ำสั่งที่จะท ำงำนเมื่อเงื่อนไขที่ก ำหนดให้เป็น truestatements_2 เป็นชุดของค ำสั่งที่จะท ำงำนเมื่อเงื่อนไขที่ก ำหนดให้เป็น false

9

Page 10: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

ในกรณีที่มีค ำส่ังมำกกว่ำ 1 ค ำสั่ง และไม่ใส่เครื่องมือหมำย { } ครอบค ำสั่งทั งหมด จะท ำให้โปรแกรมท ำงำนเฉพำะค ำสั่งแรกเท่ำนั น ท ำให้ผลกำรท ำงำนผิดพลำดได้

จำกตัวอย่ำงโปรแกรมข้ำงต้น จะได้ผลกำรท ำงำนของโปรแกรมเหมือนกัน แต่จะแตกต่ำงจำกโค้ดตัวอย่ำงโปรแกรมข้ำงลำ่งนี

ควรใช้งำนค ำสั่ง if โดยก ำหนดค ำสั่งภำยใต้เครื่องหมำย { } เสมอ10

Page 11: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

โปรแกรมตรวจสอบอำยเุกษียณรำชกำรของข้ำรำชกำร

11

Page 12: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

สร้ำงโปรเจ็กต์ If_else_Test1 สร้ำง Java Class ชื่อ ifelseTest_Condition ไว้ในโปรเจ็กต์ If_else_Test1 สร้ำงเมธอดตรวจสอบอำยุ (checkRetired) รับค่ำข้อมูลอำยุเป็นชนิด int และ

คืนค่ำผลกำรตรวจสอบเป็นข้อมูลชนิด boolean สร้ำง Java Main Class ชื่อ If_else_Test1 ไว้ในโปรเจ็กต์ If_else_Test1 เพื่อเรียกใช้คลำส

ifelseTest_Condition

12

Page 13: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

ควบคุมให้โปรแกรมเลือกท ำงำนในชุดค ำสัง่ใดชุดค ำสั่งหนึ่งจำกหลำยทำงเลือก แต่ละทำงเลือกจะมกีำรก ำหนดนิพจน์เงื่อนไขเพื่อให้โปรแกรมตรวจสอบนิพจน์

หำกพบว่ำทำงเลือกไหนมีนิพจน์เป็นจริง (true) ก็จะท ำงำนที่ชุดค ำสั่งภำยในทำงเลือกนั น โดยไม่พิจำรณำทำงเลือกอื่นที่ยังไม่ได้ท ำกำรตรวจสอบอีก มีรูปแบบกำรท ำงำน ดังนี

if (boolean_expression_1) { statement_1;

} else if (boolean_expression_2) {

statement_2;}else {

statement_n;}

13

โดยที่boolean_expression_1, boolean_expression_2

เป็นนิพจน์เงื่อนไขทำงตรรกศำสตร์ statements_1 เป็นชุดของค ำสั่งที่จะท ำงำนเมื่อเงื่อนไข ของ

boolean_expression_1 เป็น truestatements_2 เป็นชุดของค ำสั่งที่จะท ำงำนเมื่อเงื่อนไข ของ

boolean_expression_2 เป็น truestatements_n เป็นชุดของค ำสั่งที่จะท ำงำนเมื่อเงื่อนไขที่ก ำหนดให้

ทั งหมด เป็น false

Page 14: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

โปรแกรมตรวจสอบกำรเรียนครบตำมหลกัสูตรจำกจ ำนวนหน่วยกิตวิชำเอกบังคับและวิชำเอกเลือก

14

Page 15: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

สร้ำงโปรเจ็กต์ Nested_If_Test1 สร้ำง Java Class ชื่อ nestedifTest_Condition ไว้ในโปรเจ็กต์ Nested_If_Test1 สร้ำงเมธอดตรวจสอบจบ (checkPass) ซึ่งรับค่ำข้อมูลจ ำนวนหน่วยกิตวิชำเอกบังคับ

และวิชำเอกเลือกเป็นชนิด int และไม่คืนค่ำกลับ ให้แสดงผลในเมธอดนี เลย สร้ำง Java Main Class ชื่อ Nested_If_Test1 ไว้ในโปรเจ็กต์ Nested_If_Test1 เพื่อเรียกใช้คลำส

nestedifTest_Condition

15

Page 16: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

ควบคุมให้โปรแกรมเลือกท ำงำนในชุดค ำสั่งใดชุดค ำสั่งหนึ่งจำกหลำยทำงเลือก แต่ละทำงเลือกจะมีกำรก ำหนดเงื่อนไขของแต่ละทำง โดยตรวจสอบเงื่อนไขแต่ละทำงเลือก หำกพบว่ำทำงเลือกใดมีเงื่อนไงเป็นจริง (true) จะท ำงำนที่ชุดค ำสั่งภำยในทำงเลือกนั น โดยไม่พิจำรณำทำงเลือกอื่นที่ยังไม่ตรวจสอบอีก มีรูปแบบกำรท ำงำนดังนี

switch (expression) {case list_value_1: statement_1;

break;case list_value_2: statement_2;

break; case list_value_n: statement_n;

break;default : statement;

}16

โดยที่expression เป็นนิพจน์ที่ต้องตรวจสอบค่ำว่ำตรงกับ list_value ใด

เพื่อจะได้ท ำงำนตำมชุดค ำสั่งภำยใต้ list_value นั นlist_value เป็นค่ำข้อมูลที่ใช้ตรวจสอบกับ expressionstatement_n เป็นชุดของค ำสั่งที่จะท ำงำนเมื่อ list_value นั น มีค่ำเท่ำกับ

expressionstatement เป็นชุดของค ำสั่งที่จะท ำงำนเมื่อไม่มี list_value ใด มีค่ำเท่ำกับ

expression

Page 17: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

โปรแกรมตรวจสอบกำรด ำเนินกำรกับตัวเลข 2 ค่ำให้ตรงกับตัวด ำเนินกำรที่เลือกimport java.util.Scanner;public class Switch_Test {

public static void main(String args[]) {System.out.println("Main menu");System.out.println("1.Add"); System.out.println("2.Subtract");System.out.println("3.Multiply"); System.out.println("4.Divide");System.out.print("Press 1,2,3 or 4 >>> ");Scanner scan = new Scanner(System.in); int key = scan.nextInt();System.out.print("enter first number >>> "); float a = scan.nextFloat();System.out.print("enter seceond number >>> "); float b = scan.nextFloat();

17

switch (key) {case 1: System.out.println("result of" + a + "+" + b + "=" + (a + b));

break;case 2: System.out.println("result of" + a + "-" + b + "=" + (a - b));

break;case 3: System.out.println("result of" + a + "*" + b + "=" + (a * b));

break;case 4: System.out.println("result of" + a + "/" + b + "=" + (a / b));

break;default: System.out.println("Unknown Operator !!!");

}System.out.println("Good Bye !!! ");

}}

Page 18: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

18

มีกำรตรวจสอบเงื่อนไขที่เป็นนิพจน์ทำงตรรกศำสตร์ก่อนกำรท ำงำนชุดค ำสั่งภำยในลูปทุกครั ง โปรแกรมจะท ำงำนที่ชุดค ำสั่งภำยในลูปก็ต่อเมื่อนิพจน์ที่ก ำหนดเป็นจริง เมื่อโปรแกรมท ำงำนที่ชุดค ำสั่งภำยในลูปเสร็จสิ น โปรแกรมจะตรวจสอบนิพจน์ใหม่อีกครั ง จะหยุดกำรท ำซ ำเมื่อนิพจน์ที่ก ำหนดเป็นเท็จ มีรูปแบบกำรท ำงำนดังนี

while (bolean_expression) {statements;

}โดยที่boolean_expression เป็นนิพจน์ที่เป็นเงื่อนไขทำงตรรกศำสตร์มีกำรตรวจสอบก่อนกำร

ท ำงำนชุดค ำสั่งภำยในลูปทุกครั ง statements เป็นชุดค ำสั่งที่ต้องกำรให้มีกำรท ำซ ำ

Page 19: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

โปรแกรมแสดงผลกำรค ำนวณผลรวมของ 1 ถึง 20

19

Page 20: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

20

มีกำรท ำงำนในชุดค ำสั่งอย่ำงน้อย 1 รอบ ก่อนตรวจสอบเงื่อนไขที่เป็นนิพจน์ทำงตรรกศำสตร์หลังค ำสั่ง while

ถ้ำนิพจน์ท่ีก ำหนดเป็นจริง จะท ำงำนชุดค ำสั่งภำยในลูปอีกครั ง ถ้ำนิพจน์ท่ีก ำหนดเป็นเท็จโปรแกรมจะออกจำกลูปกำรท ำงำนไปท ำงำนที่ค ำสั่งถัดไปทันที มีรูปแบบกำรท ำงำนดังนี do {

statements;

} while (bolean_expression);

โดยที่statements เป็นชุดของค ำสั่งที่ต้องกำรให้มีกำรท ำซ ำboolean_expression เป็นนิพจน์เงื่อนไขทำงตรรกศำสตร์ที่มีกำรตรวจสอบหลัง

ท ำงำนในชุดค ำสั่งเสร็จสิ นทุกครั ง

Page 21: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

โปรแกรมค ำนวณผลรวมของเลขที่รับเข้ำมำเป็นค่ำทำงแป้นพิมพ์

21

Page 22: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

22

มีกำรตรวจสอบเงื่อนไขที่เป็นนิพจน์ทำงตรรกศำสตร์ก่อนกำรท ำงำนที่ชุดค ำสั่งภำยในลูปทุกครั ง โดยโปรแกรมจะท ำงำนที่ชุดค ำสั่งภำยในลูปเมื่อเงื่อนไขเป็นจริง ซึ่งจะมีกำรเพิ่มหรือลดค่ำตัวแปร

มีรูปแบบกำรท ำงำนดังนี for (control_variable = value; boolean_expression; increment or decrement) {

statements;}โดยที่control variable เป็นตัวแปรที่ควบคุมจ ำนวนครั งของกำรท ำซ ำ มีชนิดเป็นจ ำนวนเต็มvalue เป็นค่ำเริ่มต้นที่ก ำหนดให้ตัวแปรควบคุมboolean expression เป็นนิพจน์เงื่อนไขทำงตรรกศำสตร์ที่มีกำรตรวจสอบเงื่อนไขincrement or decrement เป็นค ำสั่งก ำหนดกำรเพิ่มค่ำหรือลดค่ำของตัวแปรควบคุมstatements เป็นชุดของค ำสั่งที่ต้องกำรให้มีกำรท ำซ ำ

Page 23: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

โปรแกรมค ำนวณคะแนนเฉลี่ยของนักศึกษำ จำกข้อมูลคะแนนนักศึกษำจ ำนวน N คน

23

Page 24: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

เป็นค ำสั่งที่ใช้ร่วมกับค ำสั่งกำรท ำซ ำ เพื่อหยุดกำรท ำงำนก่อนครบตำมจ ำนวนรอบที่ก ำหนด หรือใช้เป็นค ำสั่งหยุดกำรท ำงำนภำยในชุดค ำสั่งของ switch เพื่อข้ำมค ำสั่งเงื่อนไขอื่นๆ ที่อยู่ภำยใน

บล็อกของ switch โปรแกรมรับข้อมูลคะแนนของนักศึกษำจ ำนวน 5 คน ถ้ำคะแนนน้อยกว่ำ 0 หรือ มำกกว่ำ 100 ให้

หยุดกำรรับข้อมูลคะแนน

24

Page 25: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

เป็นค ำสั่งที่ท ำงำนตรงข้ำมกับค ำสั่ง break จะเป็นค ำสั่งที่บังคับให้โปรแกรมข้ำมไปท ำงำนในรอบต่อไปทันที โดยไม่สนใจค ำสั่งที่เหลืออยู่ในลูป โปรแกรมรับข้อมูลคะแนนของนักศึกษำจ ำนวน 5 คน ถ้ำคะแนนน้อยกว่ำ 0 หรือ มำกกว่ำ 100 ให้

รับข้อมูลคะแนนต่อไปจนกว่ำจะครบ

25

Page 26: ชุดค ำสั่งในกำรเขียนโปรแกรม · 2017-08-31 · สร้ำง Java Main Class ชื่อ If_Test1 ไว้ในโปรเจ็กต์If_Test1

ค ำสั่ง break และค ำสัง่ continue เป็นค ำสั่งที่ใช้ร่วมกับค ำสั่งกำรท ำซ ำเหมือนกัน แต่มีข้อแตกต่ำงกันคือ ค ำสั่ง break จะหยุดกำรท ำงำนและออกจำกกำรท ำงำนในลูปทันท ี ค ำสั่ง continue จะบังคับให้โปรแกรมข้ำมไปท ำงำนที่รอบต่อไปทันที เมื่อพิจำรณำจำกผลกำรท ำงำนของตัวอย่ำงที่ 6-12 และ 6-13 เมื่อคะแนนของนิสิต

คนที่ 4 ไม่ถูกต้อง จะได้ว่ำ ค ำสั่ง break จะหยุดกำรท ำงำนและออกจำกค ำสั่ง while ทันที ท ำให้มีกำรท ำซ ำ

ทั งหมด 4 ครั ง ค ำสั่ง continue จะบังคับให้ข้ำมไปท ำงำนทีร่อบต่อไปทันที แต่ยังเป็นกำรรับข้อมูล

ของนิสิตคนที่ 4 ท ำให้มีกำรท ำซ ำทั งหมด 6 ครั ง

26