This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
tutorial:conditionalstatement [2019/01/04 12:33] admin [If - Statements] |
tutorial:conditionalstatement [2019/01/07 13:00] (current) admin [Break, Continue, Exit and Goto] |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ^ Statements ^ Syntax ^ | ^ Statements ^ Syntax ^ | ||
| |If..Then|<sxh delphi;> | |If..Then|<sxh delphi;> | ||
| - | //---Single Statement--- | ||
| if {Condition} then {Statement}; | if {Condition} then {Statement}; | ||
| - | |||
| - | //---Multiple Statements--- | ||
| - | if {Condition} then | ||
| - | begin | ||
| - | {Statement1}; | ||
| - | {Statement2}; | ||
| - | {...}; | ||
| - | end; | ||
| </sxh> | | </sxh> | | ||
| |If..Then..Else|<sxh delphi;> | |If..Then..Else|<sxh delphi;> | ||
| - | //---Single Statement--- | ||
| if {Condition} then | if {Condition} then | ||
| {Statement1} | {Statement1} | ||
| else | else | ||
| {Statement2}; | {Statement2}; | ||
| - | |||
| - | //---Multiple Statements--- | ||
| - | if {Condition} then | ||
| - | begin | ||
| - | {Statement1}; | ||
| - | {Statement2}; | ||
| - | {...}; | ||
| - | end | ||
| - | else | ||
| - | begin | ||
| - | {Statement3}; | ||
| - | {Statement4}; | ||
| - | {...}; | ||
| - | end; | ||
| </sxh> | | </sxh> | | ||
| |If..Then/ Else If..Then/ Else|<sxh delphi;> | |If..Then/ Else If..Then/ Else|<sxh delphi;> | ||
| - | //---Single Statement--- | ||
| if {Condition1} then | if {Condition1} then | ||
| {Statement1} | {Statement1} | ||
| Line 43: | Line 18: | ||
| else | else | ||
| {Statement3}; | {Statement3}; | ||
| - | |||
| </sxh> | | </sxh> | | ||
| - | \\ | ||
| จากตารางข้างบน เป็นรูปแบบ If ที่มี statement แค่บรรทัดเดียวต่อหนึ่ง condition เท่านั้น อย่างไรก็ตามหากมี statement หลายบรรทัด ต้องเติม begin .. end ด้วยทุกครั้ง ดังนี้ | จากตารางข้างบน เป็นรูปแบบ If ที่มี statement แค่บรรทัดเดียวต่อหนึ่ง condition เท่านั้น อย่างไรก็ตามหากมี statement หลายบรรทัด ต้องเติม begin .. end ด้วยทุกครั้ง ดังนี้ | ||
| + | <hidden If-Statement: Multiple Statements> | ||
| |If..Then|<sxh delphi;> | |If..Then|<sxh delphi;> | ||
| if {Condition} then | if {Condition} then | ||
| Line 93: | Line 67: | ||
| </sxh> | | </sxh> | | ||
| - | \\ | + | </hidden> \\ |
| - | <hidden Example-1: If Statements (If..Else If..Else)> | ||
| - | **ตัวอย่าง** โปรแกรมตัดคะแนน ให้กลายเป็นเกรด A-F\\ | ||
| - | <sxh delphi;highlight: [9-21]> | ||
| - | program Nested_If_Then_Else; | ||
| - | var Score:real; | ||
| - | |||
| - | begin | ||
| - | write('Please insert your score(0-100): '); | ||
| - | readln(Score); | ||
| - | |||
| - | if (Score<50)and(Score>0) then | ||
| - | writeln('Your Grade is : F') | ||
| - | else if Score<60 then | ||
| - | writeln('Your Grade is : D') | ||
| - | else if Score<70 then | ||
| - | writeln('Your Grade is : C') | ||
| - | else if Score<80 then | ||
| - | writeln('Your Grade is : B') | ||
| - | else if Score<80 then | ||
| - | writeln('Excellent!, your gade is : A') | ||
| - | else | ||
| - | writeln('Your score is not correct!'); | ||
| - | |||
| - | readln(); | ||
| - | end. | ||
| - | </sxh> | ||
| - | | ||
| - | </hidden> | ||
| - | |||
| - | <hidden Example-2: If Statements (Nested If)> | ||
| - | **ตัวอย่าง** โปรแกรมตัดคะแนน ให้กลายเป็นเกรด A-F\\ | ||
| - | __**ข้อสังเกต**__ มีการใช้ If ซ้อน If (Nested If) | ||
| - | นอกจากนี้ให้ลองสังเกต If..Then..Else if..Else ในบรรทัดที่ 12-21 | ||
| - | จะเห็นว่าไม่มีการใช้ Begin ... End | ||
| - | เพราะถือเป็น Blog เดียวกัน\\ | ||
| - | <sxh delphi;highlight: [9-21]> | ||
| - | program Nested_If_Then_Else; | ||
| - | |||
| - | var Score:real; | ||
| - | |||
| - | begin | ||
| - | write('Please insert your score(0-100): '); | ||
| - | readln(Score); | ||
| - | |||
| - | if (Score<0)or(Score>100) then | ||
| - | writeln('Your score is not correct!!') | ||
| - | else | ||
| - | if Score<50 then | ||
| - | writeln('Your Grade is : F') | ||
| - | else if Score<60 then | ||
| - | writeln('Your Grade is : D') | ||
| - | else if Score<70 then | ||
| - | writeln('Your Grade is : C') | ||
| - | else if Score<80 then | ||
| - | writeln('Your Grade is : B') | ||
| - | else | ||
| - | writeln('Excellent!, your Grade is : A'); | ||
| - | |||
| - | readln(); | ||
| - | end. | ||
| - | </sxh> | ||
| - | | ||
| - | </hidden> \\ \\ | ||
| ===== Case - Statements ===== | ===== Case - Statements ===== | ||
| Line 170: | Line 81: | ||
| 2: {Statement2}; | 2: {Statement2}; | ||
| 3: {Statement3}; | 3: {Statement3}; | ||
| + | else {Statement4}; | ||
| + | end; | ||
| + | </sxh> | | ||
| + | |Range|<sxh delphi;> | ||
| + | case {Var} of | ||
| + | 1..10: {Statement1}; | ||
| + | 11..20: {Statement2}; | ||
| + | 21..30: {Statement3}; | ||
| else {Statement4}; | else {Statement4}; | ||
| end; | end; | ||
| - | //---Multiple Statements--- | + | </sxh> | |
| + | |||
| + | จากตารางข้างบน เป็นรูปแบบ Case ที่มี statement แค่บรรทัดเดียวต่อหนึ่ง condition เท่านั้น อย่างไรก็ตามหากมี statement หลายบรรทัด ต้องเติม begin .. end ด้วยทุกครั้ง ดังนี้ | ||
| + | |||
| + | |||
| + | <hidden Case-Statements: Multiple Statements> | ||
| + | ^ Statements ^ Syntax ^ | ||
| + | |Exact value|<sxh delphi;> | ||
| case {Var} of | case {Var} of | ||
| 1: begin | 1: begin | ||
| Line 191: | Line 117: | ||
| </sxh> | | </sxh> | | ||
| |Range|<sxh delphi;> | |Range|<sxh delphi;> | ||
| - | //---Single Statement--- | ||
| case {Var} of | case {Var} of | ||
| - | 1..10: {Statement1}; | + | 1..10: begin |
| - | 11..20: {Statement2}; | + | {Statement1}; |
| - | 21..30: {Statement3}; | + | {Statement2}; |
| - | else {Statement4}; | + | ...; |
| + | end; | ||
| + | 11..20: begin | ||
| + | {Statement3}; | ||
| + | {Statement4}; | ||
| + | ...; | ||
| + | end; | ||
| + | 21..30: begin | ||
| + | {Statement5}; | ||
| + | {Statement6}; | ||
| + | ...; | ||
| + | end; | ||
| + | else begin | ||
| + | {Statement7}; | ||
| + | {Statement8}; | ||
| + | ...; | ||
| + | end; | ||
| end; | end; | ||
| </sxh> | | </sxh> | | ||
| - | \\ | + | </hidden> \\ |
| - | <hidden Example-3: Case Statements> | + | ===== Break, Continue, Exit and Goto ===== |
| - | **ตัวอย่าง** โปรแกรมตัดคะแนน ให้กลายเป็นเกรด A-F\\ | + | คำสั่ง Break, Continue, Exit และ Goto สรุปได้ดังนี้ |
| - | <sxh delphi;highlight: [10-16]> | + | |
| - | program TestCaseStatement; | + | |
| - | var score:integer; | + | ^ Procedures ^ Meaning ^ Format ^ |
| - | Grade:char; | + | | Break | ออกจาก Loop ปัจจุบัน (For/While/Repeat) |<sxh delphi;> |
| + | for i:=1 to 10 do | ||
| + | if i=5 then break; | ||
| + | writeln('i = ',i); //i = 5 | ||
| + | readln; | ||
| + | </sxh> | | ||
| + | |Continue| สิ้นสุด Loop ปัจจุบันทันที เพื่อเริ่ม Loop ปัจจุบันใหม่ในรอบถัดไป (For/While/Repeat) |<sxh delphi;> | ||
| + | for i:=1 to 5 do | ||
| + | begin | ||
| + | if i=4 then continue; | ||
| + | writeln('i = ',i); //i = 4 won't be showed | ||
| + | end; | ||
| + | </sxh> | | ||
| + | |Exit| ออกจาก Sub-Program ปัจจุบัน (Procedure/Function) |<sxh delphi;> | ||
| + | procedure MyProc; | ||
| begin | begin | ||
| - | write('Insert your score (0 to 100): '); | + | exit; |
| - | readln(score); | + | writeln('After Exit'); //This won't be shown |
| - | + | end; | |
| - | case score of | + | </sxh> | |
| - | 0..50: Grade:='F'; | + | |Goto| ไปยัง Label ที่ระบุ |<sxh delphi;> |
| - | 51..60: Grade:='D'; | + | label PointA,PointB; //declare labels |
| - | 61..70: Grade:='C'; | + | BEGIN |
| - | 71..80: Grade:='B'; | + | Goto PointB; |
| - | else Grade:='A'; | + | PointA: |
| - | end; | + | wrtieln('Passing PointA'); |
| - | + | exit; //Exit the program | |
| - | writeln('Your grade is: ',Grade); | + | PointB: |
| - | readln(); | + | wrtieln('Passing PointB'); |
| - | end. | + | Goto PointA; |
| - | </sxh> | + | END. |
| - | + | </sxh> | | |
| - | Compiled Results: | + | |
| - | + | ||
| - | Insert your score (0 to 100): 35 | + | |
| - | Your grade is: F | + | |
| - | + | ||
| - | </hidden> \\ \\ | + | |
| - | + | ||
| - | ===== Break, Continue and Goto ===== | + | |