บทท ่ี2 - it.nrru.ac.th · โครงสร้างแบบซ้อน(nested...
TRANSCRIPT
วตถประสงค
แนะนานพจน (expression)
นยามความแตกตางระหวางตวแปรของออปเจค (object variables) และ นยามความแตกตางระหวางตวแปรของออปเจค (object variables) และ ตวแปรภายใน (local variables)
แนะนาตวดาเนนการ(Operators) ทใชในภาษาจาวา 4 แบบคอ แนะนาตวดาเนนการ(Operators) ทใชในภาษาจาวา 4 แบบคอ • ตวดาเนนการทางคณตศาสตร (Arithmetic Operators)• ตวดาเนนการทางตรรกศาสตร (Logical Operators)• ตวดาเนนการแบบสมพนธ (Relational Operators)• ตวดาเนนการแบบบต (Bitwise Operators)
วตถประสงค
อธบายคาสงโครงสรางแบบเลอกทา (Selection Structure) • if..else • switch• switch
อธบายคาสงโครงสรางแบบทาซา (Repetition Structure) • while• do..while• for
อธบายคาสงโครงสรางแบบซอน (Nested Structure)อธบายคาสงโครงสรางแบบซอน (Nested Structure)
อธบายความหมายของ • label• คาสง continue• คาสง break
นพจน
นพจน คอขอความทอาจประกอบดวยขอมลคาคงท ตวแปร ตวดาเนนการ และวงเลบ
นพจน แบงเปนนพจน แบงเปน• นพจนคณตศาสตร (Arithmetic Expression)• นพจนตรรกศาสตร (Logical Expression)
ขอบเขตของตวแปร
ตวแปรในภาษาจาวาม 2 ประเภท• ตวแปรทเปนคณลกษณะของออปเจคหรอคณลกษณะของคลาส
ป ใ• ตวแปรภายใน
สาหรบคาคงทหรอตวแปรทอยภายในบลอกของเมธอด จะมขอบเขตการใช ใ งานอยภายในบลอกเทานน
ใ โคาเรมตนทถกกาหนดใหอตโนมต
ชนดขอมล คาเรมตนboolean falseboolean falsebyte 0short 0int 0long 0Lfloat 0.0ffloat 0.0fdouble 0.0char '\u0000'
คลาส null
ตวอยางแสดงขอบเขตของตวแปร
public class VariableScopeDemo {
public int i; // object variable
public void method1() {p
int j = 4; // local variable
int k = 2; // another local variable
}}
public void method2() {
int j = 0; //local variable
System.out.println(i); // calling an object variable i
// System.out.println(k); // illegal
}
}
ใ ตวอยางแสดงตวแปรภายในและตวแปรของออปเจคpublic class ScopeExample {public class ScopeExample {
private int i=1;
public void method1() {
int i=4 j=5;int i=4, j=5;
this.i = i+j;
method2(7);
}}
public void method2(int i) {
int j=8;
this.i = i+j;j
}
}
public class TestScoping {
public static void main(String args[]) {
ScopeExample scope = new ScopeExample();
scope.method1();
}
}
ตวดาเนนการแบบตางๆ
ตวดาเนนการทางคณตศาสตร (Arithmetic Operators)ตวดาเนนการแบบสมพนธ (Relational Operators)ตวดาเนนการแบบสมพนธ (Relational Operators)ตวดาเนนการทางตรรกศาสตร (Logical Operators)ตวดาเนนการแบบบต (Bitwise Operators)
ตวดาเนนการทางคณตศาสตร
เครองหมาย ความหมาย ตวอยางนพจน
+ บวก a+b
- ลบ a-b
* คณ a*bคณ a b
/ หาร a/b
% เศษจากการหาร a%b
ตวดาเนนการทางคณตศาสตรแบบยอ
เครองหมาย ตวอยาง ความหมาย
+= x+=3 x = x+3
-= x-=3 x = x-3
*= x*=3 x = x*3
/= x/=3 x = x/3
%= x%=3 x = x%3
ตวดาเนนการเพมคาและลดคา
ตวดาเนนการเพอบวกคาทละ 1 หรอลดคาทละ 1
เครองหมาย ++ หรอ --เครองหมาย ++ หรอ
ตวอยางx++ คอ x = x+1• x++ คอ x = x+1
• ++x คอ x = x+1• x-- คอ x = x-1
• --x คอ x = x-1
ถาวางเครองหมายไวขางหนา โปรแกรมจะคานวณคากอนแลวจงทาคาสง
ถาวางเครองหมายไวขางหลง โปรแกรมจะคานวณคาหลงจากทาคาสง
ตวดาเนนการแบบสมพนธ
เครองหมาย ความหมาย ตวอยาง ผลลพธ
< นอยกวา 3<4 true
<= นอยกวาหรอเทากบ 3<=4 true<= นอยกวาหรอเทากบ 3<=4 true
> มากกวา 3>4 false
>= มากกวาหรอเทากบ 3>=4 false
3 4 f l== เทากบ 3==4 false
!= ไมเทากบ 3!=4 true
ตวดาเนนการทางตรรกศาสตร
เครองหมาย ความหมาย
! กลบคาทางตรรกะ
&& หรอ & AND คาทางตรรกะ
|| หรอ | OR คาทางตรรกะ|| หรอ | OR คาทางตรรกะ
^ Exclusive-OR คาทางตรรกะ
ตวดาเนนการขอมลเชงบต
ตวดาเนนการขอมลเชงบตของเลขจานวนเตม
ตวดาเนนการ ความหมาย
~ Complement
& AND
| OR
^ XOR
ตวดาเนนการแบบ shift บต
ตวดาเนนการ ความหมาย
>> signed right shift
>>> i d i ht hift>>> unsigned right shift
<< left shift
ตวดาเนนการของขอความ
เครองหมาย + เปนตวดาเนนการทจะเชอมขอความสองขอความเขาดวยกนตวถกดาเนนการ (Operand) ตวหนงจะตองเปนขอมลชนดขอความตวถกดาเนนการ (Operand) ตวหนงจะตองเปนขอมลชนดขอความ
การทตวถกดาเนนการอกตวหนงไมใชขอมลชนดขอความ ตวถกดาเนนการจะถกให
เปนขอมลชนดขอความอตโนมตเปนขอมลชนดขอความอตโนมต
คาสงโครงสรางแบบเลอกทา
จะสามารถเลอกทาชดคาสงไดตามเงอนไขทกาหนดไว
ม 2 รปแบบ คอม 2 รปแบบ คอ• if..else• switch
คาสง if..else
รปแบบ
if (logical expression 1) {if (logical expression 1) {statements1
} else if (logical expression 2) {) {statements2
} else {
statements3
}
คาสง switch
คาสง switch มรปแบบดงน
switch (expression) {s tc (e p ess o ) {
case value1: statements 1;break;
case value2: statements 2;break;
:case valueN: statements N;
break;break;:
default: statements N+1;}
คาสงโครงสรางแบบทาซา
จะสามารถทาชดคาสงซาไดตามเงอนไขทกาหนดไว
ม 3 รปแบบ คอม 3 รปแบบ คอ• while• do..while• for
คาสง while
มรปแบบคาสงดงน
initial statementsinitial statements
while(logical expression) {
statements
update statements
}}
คาสง do..while
มรปแบบคาสงดงน
initial statementsinitial statements
do {
statementsstatements
update statements
} while (logical expression);} ( g p )
คาสง for
มรปแบบคาสงดงน
for(initial statements; logical expression; update statements) {
statements
}}
โครงสรางแบบซอน (Nested Structure)
เราสามารถทจะเขยนคาสงโครงสรางควบคมใดๆซอนอยภายในได
ตวอยางเชน การเขยนโครงสรางทาซาแบบซอน (for อยใน for)ตวอยางเชน การเขยนโครงสรางทาซาแบบซอน (for อยใน for)
โครงสรางควบคมภายในและภายนอกไมจาเปนตองเปนคาสงชนดเดยวกน
คาสงอนๆในการควบคม loop
label : statements;• label เปนการระบตาแหนงของ loop กรณทม loop ซอนกน
break [label];• คาสงใหสนสดการทางานใน loop
continue [label];• คาสงใหขามการทางานของคาสงทเหลอทงหมดใน loop
โ ตวอยางโปรแกรมทใชคาสงโครงสรางแบบซอน
public class SampleBreak1 {public static void main(String args[]) {
int i, j, product;for (i=1; i<=3; i++) {
for (j=1; j<=3; j++) {product = i*j;if (j==3) break;if (j==3) break;System.out.println(i+" * "+j+" "+product);}
}}
}
1 * 1 = 11 1 = 11 * 2 = 22 * 1 = 22 * 2 = 4
ผลลพธทไดจากการรนโปรแกรม2 2 43 * 1 = 33 * 2 = 6
โ ตวอยางโปรแกรมทใชคาสงโครงสรางแบบซอน
public class SampleBreak2 {public static void main(String args[]) {
int i, j, product;outer: for (i=1; i<=3; i++) {
for (j=1; j<=3; j++) product = i*j;if (j==3) break outer;if (j==3) break outer;
System.out.println(i+" * "+j+" = "+product);}
}System.out.println("Outside nested loops.");
}}
1 * 1 = 11 * 2 = 2ผลลพธทไดจากการรนโปรแกรมOutside nested loops.
สรปเนอหาของบท
นพจนคอขอความทอาจประกอบดวยขอมลคาคงท ตวแปร ตวดาเนนการ และวงเลบ
ตวแปรของออปเจคตางจากตวแปรภายในตรงท ตวแปรของออปเจคสามารถถกนาไปใชไดในทกเมธอดของคลาส และจะถกกาหนดคาเรมตนให โดยอตโนมต สวนตวแปรภายในจะเปนตวแปรทกาหนดในบลอกของเมธอด ซงจะมขอบเขตการใชงานอยภายในบลอกทกาหนดขนเทานน และจะไมม
ใ โ โการกาหนดคาเรมตนใหโดยอตโนมต
สรปเนอหาของบท
ตวดาเนนการทใชในภาษาจาวามทงหมด 4 แบบคอ • ตวดาเนนการทางคณตศาสตร : +, -, *, /, %, +=, -=, *=, /=, %=, ++และ --
• ตวดาเนนการแบบสมพนธ : <, <=, >, >=, == และ != • ตวดาเนนการทางตรรกศาสตร : !, &&, &, ||, | และ ^• ตวดาเนนการแบบบต : ~, &, |, ^, >>, >>>, <<
ตวดาเนนการของขอความจะเปนเครองหมาย + ซงใชในการเชอมขอความสองขอความเขาดวยกนสองขอความเขาดวยกน
คลาส Math จะมเมธอดตางๆ ในการจดการกบฟงกชนหรอคาสงทางคณตศาสตรตางๆคณตศาสตรตางๆ
คาสงโครงสรางควบคม เปนคาสงทใชในการกาหนดลาดบการทางานของ โ ป โ โ คาสงตางๆ โดยมสามรปแบบคอ โครงสรางแบบตามลาดบ โครงสราง
แบบเลอกทา และโครงสรางแบบทาซา
สรปเนอหาของบท
คาสงทเปนคาสงของโครงสรางแบบเลอกทาคอ คาสง if, if..else หรอ switch
คาสงทเปนคาสงของโครงสรางแบบทาซาคอ คาสง while do while หรอ คาสงทเปนคาสงของโครงสรางแบบทาซาคอ คาสง while, do..while หรอ for
คาสงโครงสรางทงหมดทกลาวมาแลวขางตน สามารถนามาใชรวมกนเปนคาสงโครงสรางทงหมดทกลาวมาแลวขางตน สามารถนามาใชรวมกนเปนลกษณะแบบซอนได เชน คาสง switch อยภายในคาสง while หรอคาสง for อยภายในคาสง for ซงเรยกโครงสรางในลกษณะนวา โครงสรางแบบซอนอยภายในคาสง for ซงเรยกโครงสรางในลกษณะนวา โครงสรางแบบซอน
คาสง break จะทาใหหยดสนสดการทางานของโครงสรางแบบทาซา สวนคาสง continue จะขามการทางานคาสงทเหลอภายในบลอก { } โดยไปเรมคาสง continue จะขามการทางานคาสงทเหลอภายในบลอก { } โดยไปเรมการทาซาในรอบตอไปใหม