อาจารย ดร. นัฐพงศ ส งเนียม ... · 2019. 5. 4. · Integer...

Post on 12-Oct-2020

15 views 0 download

Transcript of อาจารย ดร. นัฐพงศ ส งเนียม ... · 2019. 5. 4. · Integer...

อาจารย ดร. นัฐพงศ สงเนียมhttp://www.siam2dev.net

siam2dev@hotmail.com , xnattapong@hotmail.com

Last updated : 08-12-2560

Operator คือสัญลักษณ หรือ keywords ท่ีใชสําหรับนําคามาคํานวณบางอยางใหไดเปนผลลัพธ ซึ่งจะเรียกอินพุตของ operator วา operand

ตัวดําเนินการเดี่ยว Unary Operator ใช operand 1 ตัว ซึ่งมี 2 แบบ คือ◦ Pre-fix unary operator เชน --y , ++x ◦ Post-fix unary operator เชน y-- , x++ , i++ , i--

Binary Operator ใช operand 2 ตัว เชน a + b , x / y , a = 5 Y*5

x/z

ตวัดาํเนินจะอยู่ด้านหน้าของ Operand ++X ++Y

int x = 5; --x; // เอาคา่ x ลบดว้ย 1

System.out.println(x);

int x = 5; System.out.println(--x);

4

4

int x = 5; x--; เอาคา่ x ลบดว้ย 1

System.out.println(x);

int x = 5; System.out.println(x--); System.out.println(x--);

4

5

คาํศพัท์

ไวยากรณ์ การประกาศตวัแปร

ผลลพัธ ์หน้าจอ คาํตอบ

อธิบายโค้ด

เขียนโปรแกรมด้วย

X++ Y++ I++ int x;

X+=5;ผลลพัธจ์ะเป็นอยา่งไร

Syntax Errorภาษาจาวา เป็น ภาษา แบบ case sensitive

int x;X++;ผลลพัธจ์ะเป็นอยา่งไร

int x;x++;ผลลพัธจ์ะเป็นอยา่งไร

int x;x--;ผลลพัธจ์ะเป็นอยา่งไร

4.3 ปีแสง ก่ีกิโลเมตร

300000 *60*60*24*365*4.3

ท่ีเหลือเป็นความรู้ระดบั เบสิก พืน้ฐาน

byte = 8bit , 2^7 short = 16bit ,2^15 int = 32bit หรอื 4 Byte long = 64bit หรอื 8 Byte

, 2^63

Byte Short Integer Long

PDT จากโค้ดน้ี มีข้อผิดพลาดหรือไม่ จะแก้ไขอย่างไร

ADT

Type Wrapper Class

Byte Short Integer Long

MIN_VALUEMAX_VALUE

3.5 KM = ? CM

1. สรา้ง Project ตัง้ชือ่ทีเ่หมาะสม2. วธิกีารคดิ

3. การรบัขอ้มลู

4. การแปลง สตูรคาํนวณ ทาํอยา่งไร

?ถ้าโจทยแ์บบต้องมีความรู้เก่ียวกบัอะไร?

เทียบบญัญติัไตรยางศ์

เอก็ซะ 10^18 เพตะ 10^15 เทระ 10^12 = 1,000,000,000,000 จกิะ

เมกะ

เดคา

เดซิ

มลิลิ

float 4 byte double 8 byte

1

2

3

ถ้า รบั มาเป็น เงินสกลุดอลล่ารส์หรฐั ให้แปลงเป็นเงินบาท

หรอื แปลงเงินเยนเป็นเงินบาท

หรอื แปลงจากเงินหยวนเป็นเงิน บาท

กาํหนดให้ผูใ้ช้สามารถเลือกหน่วยสกลุเงินได้

*** กาํหนดให้เลือก สกลุเงินก่อน แล้วป้อนจาํนวน

เงิน แล้วแปลงให้เป็นเงินบาท

14.17

ทาํได้ เกือบ

ทาํไม่ได้

จะทาํใหเ้ลอืก หน่วยไดอ้ยา่งไร?

คาํตอบ ให้แสดงข้อความดงัน้ี

กรณุาเลือกสกลุเงิน

1. Dollar (30)2. Yen (100/30)3. Yuan (5)

if (ans==1) {คิดแบบ US dollar} else if (ans==2) {

} else if (ans==3) {

}

if(ans==1) {

} else if(ans ==2) {

} else if(ans ==3) {

}

Decision Control•If•Switch case

[ 1 ] พท. วงกลม

[ 2 ] พท. สามเหล่ียม

[ 3 ] พท. ส่ีเหล่ียม

[ 4 ] พท. ส่ีเหล่ียมคางหมู

[ 5 ] เส้นรอบวงกลม

[ 6 ] ปริมาตรทรงกลม

สง่ วนัที ่17 ธ.ค. 2560

เกิด กาํหนดตวัแปร ไม่ถกูต้อง หรอื เกบ็ค่าเกินขนาดท่ีตวัแปรจะรองรบั ซ่ึง

เรียกว่า Overflow การผิดพลาดแบบน้ีเป็น Syntax Error วิธีแก้ให้ปรบัขนาดตวัแปรให้รองรบัขนาดข้อมลู

จากโค้ดน้ี มีข้อผิดพลาดหรือไม่ จะแก้ไขอย่างไร

วนัจนัทร ์ที ่26 ธ.ค. 2559

◦ สาํหรบั นศ. วทิยค์อมฯ 58/1 และ

58/2

*** อาจมีการเปล่ียนแปลง

27 ธ.ค. 2558

Lec01-Lec05 ทฤษฏ ี+ ขอ้เขยีน + ปฏบิตัิ

Facebook Page :: java2oop

+-+*/ฯลฯ

5 + 6

Operand Operand

X + Y

SUM += Y

Operator

Term คือคาหน่ึงคา อาจจะเปนคาคงท่ี หรือ คาท่ีอยูในตัวแปรExpression คือหนวยของโปรแกรมท่ีสามารถคํานวณออกมา

เปนคาคาหน่ึง ซึ่งอาจจะเปน term เดียว ๆ หรือประกอบขึ้นจากหลาย ๆ term และ operator

7 X

X + 7Math.sqrt(X)

Y - Math.sqrt(X)A+b-5/2*4/6+7

ตวัอยา่ง เชน่

Term

Term

Expression

Arithmetic ExpressionBoolean Expression

X = 5SUM = X+YX = 5;X = x – 5;

{x= x-5;y=y*2;

}

X87y

term

expression

block

Statementประโยค ;

ifwhileformethodclass

== Comparison operatorเป็นตวัดาํเนนิการในการเปรยีบเทยีบคา่

= Assignment operatorเป็นตวัดาํเนนิการในการกาํหนดคา่ใหต้วัแปร

START

READ X

X > 10

STATEMENT1

YES

FALSE

NO

TRUE

T

F

STATEMENT2

X >10if(x > 10) {

} else {

}

Boolean expression

Assignment Operators◦ สําหรับกําหนดคา โดยใช operator =

Arithmetic Operators◦ สําหรับการคํานวณทางคณิตศาสตร

Bit-wise Operators◦ สําหรับกระทํากับ bits ของเลขจาํนวนเต็ม

Relational Operators◦ สําหรับการเปรียบเทียบ ใหผลลพัธเปนคา boolean

Logical Operators◦ สําหรับใชกระทํากับขอมลูชนิด boolean

Conditional Operators◦ สําหรับเปรียบเทยีบแลวตัดสินใจทําประโยคทีก่ําหนดให

ภาษา java มี operators = สําหรับทําการกําหนดคา (assignment)

รูปแบบคําสั่ง

variable = [constant | expression];

Example

X = ( a * a + 4.0 * b ) / 2.0;

Y = 5;

(อานวา ใหเอาคา 5 เก็บไวในตวัแปร Y)

MyClass.name = “alovela”;

1. int y;2. y=100;3. y=5;

บรรทดัน้ีจงึไม่

แปลวา่ y กบั 5 เทา่กนั

int y =4;y = 5;

SET Y 10SET SUM X

X = 5Y=10

vb, java

SET X 5 SET Y X+2; SET SUM SUM + i

= X = 5; Y = X+2; SUM = SUM + i;

Java

Algorithm/Pseudo-code

:=X := 5;Y := X+2;SUM := SUM + i;

Pascal , Delphi

if(x==5) {}

Java

int x=1;if(x==5)

x = x+3;x = x+9;

int x=8;if(x==5)

x = x+3;x = x+9;

int x=5;if(x==5)

x = x+3;x = x+9;

int x=5;if(x==5)

x = x+3; else

x = x+9;

int x=5;if(x==5) {

x = x+3; x = x+9; }

statement Variable declaration statement

10

int x=5;if(x==5)

x = x+3; else

x = x+9;8

T

F

int x=5;if(x==5) {

x = x+3;}else {

x = x+9;}

x = x + 20;

35

T

F

28

int x=1;if(x==5)

x = x+3;x = x+9;

10

int x=1;if(x==5) {

x = x+3;x = x+9;

} 1

True/False

int x=5;if(x==5) {

x = x+3;x = x+9;

} 17

int x=6;if(x==5) {

x = x+3;x = x+9;

} 17

class TestOperator{public static void main(String [] args){ int x ,y ,z ;

x = y = z = 1;System.out.println(x + "," + y +"," + z );x = (y = (z = z + 1 )+ 1 ) + 1;System.out.println(x + "," + y +"," + z );x = (y = 1) + (z = 1) ;System.out.println(x + "," + y +"," + z );//x = y = 1 + z = 1 ;

}}

double x,y,z;int k,g;byte P,B;

//ใหท้าํจากขวามาซา้ย

นราธร

=

??? ปวณีา

??? โรจน์ศกัดิ ์

โปรแกรมน้ี จะไดผ้ลลพัธ ์คอื

ใหเ้วลา 5 นาท ี(13.35)

int x; ....default ... 0 , null

PDTdouble x,y,z;int k,g;byte P,B;

Double x,y,z;Integer k,g;Byte P,B;

k.MaxVALUES();

*** ถา้ตัง้ตวัแปรแบบ type wrapper class แต่ทาํงานแบบ PDT

Class

()^ xor* /

- +

X= 3 * 2-5/(4-2)*(7-2)

X= 3 * 2-5/(4-2)*(7-2)

X = …………………………

5.5

5.5

X = 2*8/(5-8*3)/(9-7)

16 / -19/ 2

-19/32

X = 5*2+8-5*7/3-3+5X = 5*2+8-5*7/3-3+5

10+8 - 35/3 - 8

10 – 35/3-1 กวา่

X = 5 + 4 – 9 X = 8 / 2 * 7

X = 8 / 2 * 7 – 5 + 8

Operators ใชสําหรับการคํานวณทางคณิตศาสตร ซึ่งจะมี Operands และผลลัพธเปนตัวเลข จํานวนเต็มหรือทศนิยมก็ได แบงเปน 4 ประเภทคือ

Integer Arithmetic Operators Floating-point Arithmetic Operators Arithmetic Assignment Operators Increment and Decrement Operators

Integer Arithmetic Operators ไดแก + (บวก), - (ลบ), * (คูณ), / (หาร) และ % (modulus) ที่ใชกระทํากับเลขจํานวนเตม็และจะไดผลลัพธเปนเลขจํานวนเต็ม

Floating-point Arithmetic Operators ไดแก + (บวก), - (ลบ), * (คูณ), / (หาร) และ % (modulus) ที่ใชกระทํากับเลขจํานวนทศนยิมและจะไดผลลัพธเปนเลขทศนิยม

Opt Integer Output Float Output

+ + 1 1 + 1.0 1.0

- - 2 -2 – 2.0 -2.0

ตัวดําเนนิการเดี่ยว(unary operator)

Opt Integer Output Float Output

+ 1 + 2 3 1.0 + 2.0 3.0

- 2 - 3 -1 2.0 – 3.0 -1.0

* 3 * 4 12 3.0 * 4.0 12.0

/ 24 / 5 4 24.0 / 5.0 4.8

% 16 % 7 2 16.0 % 7.0 2.0

ตัวดําเนนิการคู(binary operator)

MODULATE การหารเอาเศษ

8.0/2= ?

for(int i=1; i <= 1000; i++) {if(i % 2 == 0) {

System.out.println(i);}

}

1001

2,4,6,…1000

100,98,96,…4,2

Postfix Unary OperatorTestPostFix

คาํถาม

•โปรแกรมน้ีทาํอะไร

•โปรแกรมน้ี จะทาํทัง้หมดกีร่อบ

•โปรแกรมน้ี จะแสดงคา่ i กีค่ร ัง้

รปูแบบ

for(ค่าเร่ิมต้น ; เง่ือนไข ; ค่าเพ่ิมหรือลดค่า กาํหนดจาํนวนรอบ;) {

}

ตวัอย่าง

for(int I =1; I <= 10 ; I++;) {System.out.println(I);

}

for(int i=1; i <= 1000; i++) {if(i % 10 == 0) {

System.out.println(i);}

}

1001

2,4,6,…1000

100,98,96,…4,2

Postfix Unary OperatorTestPostFix

คาํถาม

•โปรแกรมน้ีทาํอะไร

•โปรแกรมน้ี จะทาํทัง้หมดกีร่อบ

•โปรแกรมน้ี จะแสดงคา่ i กีค่ร ัง้

จงเขยีนคาํสัง่เพือ่หา เลขตัง้ 500 - 1000 มเีลขอะไร ที ่

5 หารลงตวั จงแสดงออกมา

คาํตอบ

int i;for(i=500; i<=1000;i++) { }

คาํตอบ

int i;for(i=500; i<=1000;i++) {

}

จงเขยีนโปรแกรม เพือ่รับคา่(x) แลว้หาคา่ของ 1^2 + 2^3 + 3^4 + 4^5 +… + X^X+1

Enter Number :: 5

1^1 + 2^2 + 3^3+4^4+5^5=???

1. package …..ชือ่โปแกรม Test_Power2. import java.util.Scanner;3. ………………………………..4. Scanner Sc = new Scanner(System.in);5. System.out.print(“Enter Number : ”);6. int x = Sc.nextInt();7. long sum=0; 8. for(int I = 1; I <=x ; I++) {9. sum = sum + (long)Math.pow(I,I+1);10. }11. System.out.println(“1^2+2^3 +… + x^x+1” + sum);

“Enter Number”

จะหา PRIME NUMBER ได ้อยา่งไร

รบัและแสดงผล โดย

ไม่ระบอุปุกรณ์รบัข้อมลูจาก

แป้นพิมพ์

STATEMENT 1STATEMENT 1

STATEMENT 3

STATEMENT 3

TRUE

FALSE

YES

NO

Y

N

T

F

ตวัทีเ่ป็นคา่ Prime Number ตัง้ 1-100 มเีลขอะไรบา้ง จงเขยีนคาํสัง่

ภาษา จาวา

จงรบัตวัเลขเข้ามาแล้วตรวจสอบวา่เป็น Prime Number หรอืไม่

9 = Prime Number?1,3,9

STEP 1 STEP 2

คาํตอบ

int i;for(i=500; i<=1000;i++) {

}

คาํตอบ

int i;for(i=500; i<=1000;i++) {if(i % 5 ==0) { System.out.println(“I : ” + i);}

}

Step 1

Step 2

1. for loop จะทาํกีร่อบ .......................

2. และ System.outprintln จะถกูทาํกีค่ร ัง้ ...........

y++; // y = y + 1; I++ ; …. I = I +1; sum++ …. sum = sum + 1

int y=5; System.out.println(y++); // 5

int y=5; System.out.println(++y); // 6

คาํตอบ

int i;int x=0;for(i=500; i<=1000;i++) {if(i % 5 ==0) { System.out.println(“I : ” + i);x++;}

}System.out.println(x);

Step 2

1. for loop จะทาํกีร่อบ .......................

2. และ System.outprintln จะถกูทาํกีค่ร ัง้ ...........

1. ตวัทีห่ารดว้ย 5 ลงตวัมกีีต่วั

2. ทีห่ารไมล่งตวั มกีีต่วั

ถา้ใส ่คา่ arsg[0] = 100จาํนวนจะทาํกีร่อบ ?คา่ I สดุทา้ยคอื อะไร ...........

I++ …………………. I = I + 1 ++I …………………… I = I+1

i=500;System.out.println(i++);i++;System.out.println(++i);

500

503

I-- …………………. I = I - 1 --I …………………… I = I-1

i=500;System.out.println(i--);i--;System.out.println(--i);

?

?

i=875;System.out.println(i--);i++;System.out.println(--i);

….

….

875

874

int i;i =1025;i+=5;System.out.println(i--);i++;System.out.println(i++);

….

….

1030

?1030

i=1025;System.out.println(i--);i++;System.out.println(i++);

….

….

1025

1025

i=125;System.out.println(i--);i++;System.out.println(i++);

….

….

???

???

i = 5 i==5 Comparison Operator

Assign Operator

for(int i=1000; i >= 1; i--) {if(i % 2 == 0) {

System.out.println(i);}

}

0

2,4,6,…100

100,98,96,…4,2

--i

5 นาที

for(int i=997;i>=1;i--) {if(i%2==1) {System.out.println(i +” , ”);} else {

}}

X++ X— --X ++X

Post Fix

Pre Fix

X=8;System.out.println(--X);

X= 8;System.out.println(X--);System.out.println(x);

7

87

X = X – 1;X = X+1;

%

1. 5 % 1588555 = ?2. 1897744 % 2 = ?

ODDEVEN

1. 2 + 4 + 6 +8 …100000 = ? 2. 2^2 + 3^2 + 4^2 +.. 50^2=? 3. 1^10 + 2 ^ 9 + 3^8 +… 8^3 + 9^2 + 10^1 =?

(เพียรพรรณ)(แนะนํา ใช ้double)

2*2*2 ประถม2^3 มัธยมMath.pow(2,3) มหาวทิยาลัย

ผูห้ญิง

ผูช้าย

เชน่ 5

2*1 = 2 2*2 = 4 2*3 = 6

… 2*12 = 24 --------------------------

5*12 = 60

for(int i=2;i<=x;i++) {

for(int j=2;j<=12;j++) {System.out.println(i + ”*” +j

+ “=” + i*j);}

}

If Switch case / Select case Loop◦ For ………………………………..การวนลปู ต้องรู้จาํนวนท่ีแน่นอน

◦ Do ………………………….. ให้ทาํไปก่อนแล้วค่อยมาเชค็ ตรวจสอบเง่ือนไขท่ี

หลงั

◦ While ……………..ตรวจสอบก่อนแล้ว ค่อยถ้าจริง

คา่เริม่ตน้ สดุทา้ย

จากน้อยไปหามาก

จากมากไปหาน้อย

5 5

for(int i = 5; i<= 100; i++) {if(i % 5 ==0) {

System.out.println(i);}

}

Inteval

ไมค่วรเอาผลรวมไปแสดงในลปู

ผลรวมจะแสดงคา่สดุทา้ยออกมา ควรอยูห่ลงัลปู

1 + 2 + 3 . + 10000 for(int I = 1;for(int I = 1;i<=1000;

for(int I = 1;i<=1000;i++) {Total = Total + I;

}

for(int I = 1;i<=1000;i++) {Total = Total + I;

}

for(int i = 1;i<=1000;i++) {Total = Total + i;System.out.println(Total);}

long Total=0;for(int i = 1;i<=1000;i++) {Total = Total + i;

}System.out.println(Total);

ทัง้สองแบบนี้แตกตา่งกนัอยา่งไร ?

1 + 2 + 3 ….1000 = 500500

for(int I = 2 ; I <=1000;I++) {if(I % 2 ==0) {Total = Total + I;}

}System.out.println(“Total : ” + Total);

1. จาํนวนรอบทีว่นกีร่อบ2. คา่ สดุทา้ยของ I คอื ...................3. คา่ total คอื ..............................4. มกีารพมิพค์า่ Total กีร่อบ ............

สว่นของโปรแกรม

for(int I = 2 ; I <=1000;I++) {if(I % 2 ==0) {Total = Total + I;}

}System.out.println(“Total : ” + Total);

N/2(N+1)10/2*(10+1) = 55100/2*101 = 50501000000/2*(1000001) = 500000500000

Integer.parseInt()

long x; x = Math.pow(2,5);

return เป็น double

long x; x = (long)Math.pow(2,5);

casting

System.out.println(1 + 2);System.out.println(2 - 3);System.out.println(3 * 4);System.out.println(6 % 7);

System.out.println(1.0 + 2.0);System.out.println(2.0 - 3.0);System.out.println(3.0 * 4.0);System.out.println(6.0 % 7.0);

System.out.println(2.0 - 3);System.out.println(3 * 4.0);

Operator ที่ใชคาของตัวแปรตัวหนึ่งมากระทาํกับ operand แลวเก็บผลลัพธไวที่ตัวแปรตัวนัน้ โดยมีรูปแบบประโยคดังนี้

<variable> <op> = <operand>;

Example

X += 1; // X = X + 1Y -= 5; // Y = Y - 5X /= 4; // X = X / 4

X = X + 5; ……………… X+=5; X = X + Y; ……………… X +=Y;

+= -= *= /=

Total = Total + x; ……. Total +=x;

X = X + 5; X+=5; SUM = SUM + 5; SUM +=5;

Y *=7 ; Y = Y * 7;

op Form Meaning

+= x += y x = x + y

-= x -= y x = x – y

*= x *= y x = x * y

/= x /= y x = x / y

%= x %= y x = x % y

X = X + Z K = K - 5 ; SUM = SUM /7;

X+=Z;

K-=5;

SUM/=7;

int x = 1;x += 1; System.out.println(x); 2x *= 2; System.out.println(x); (42 จริาพร)x -= 3; System.out.println(x); (-2 วลิาวัณย์)x /= 4; System.out.println(x); (0 พชรณัฏฐ์)float y = 1f;y += 1; System.out.println(y) (ธนวัฒน์ 2.0);y *= 2; System.out.println(y); (2.0 สุปัญโญ)y -= 3; System.out.println(y); (-2.0 ศราวุฒ)y /= 4; System.out.println(y) 0.25 กรพฒัน์);

int x = ¼; 0

X= 5/2; = 2.5

Operators สําหรับใชในการเพ่ิมคาหรอืลดคาของตัวแปรทีละ 1 เชน++x; จะมีความหมายวา x = x + 1; และ--x; จะมีความหมายวา x = x – 1;

มีวิธีใช 2 แบบคือ1. ใชแบบ prefix เชน ++x จะทําการบวกหนึ่งใหแก x กอน

แลวจึงสงผลลพัธออกมาเปนคาที่ไดจากการกระทํา2. ใชแบบ posfix เชน x++ จะเก็บคา x ตอนนัน้ไวกอน แลวจึง

ทําการบวกหนึง่ แลวจึงสงคา x ที่ไดจากการกระทําออกมาเปนผลลัพธ

ตัวดําเนินการสําหรับเพ่ิมคา ++ตัวดําเนินการสําหรับลดคา --

int x = 10;int y;y = ++x;System.out.println(x);System.out.println(y);

int x = 10;int y;y = x++;System.out.println(x);System.out.println(y);

1111

1110

int a, b, x = 1, y = 1 ;a = x++; b = ++y;System.out.println(a + "," + b);a = x--; b = --y;System.out.println(a + "," + b);

เปน Operator สําหรับกระทํากับทุก ๆ bits ของ operands ท่ีเปนขอมูลเลขจํานวนเต็ม(ไดแก byte, short, int และ long) หรือเปนตัวอักษร char แบงออกเปน 2 กลุมคือ

Boolean Bit-wise Operators Assignment Bit-wise Operators

Op Meaning Example Result

~ Bitwise NOT ~(0110) 1001

& Bitwise AND 0011 & 0101 0001

| Bitwise OR 0011 | 0101 0111

^ Bitwise XOR 0011 ^ 0101 0110

<< Shift left 1011 << 2 1100

>> Shift right(sign bit) 1011 >> 2 1110

>>> Shift right(zero fill) 1011 >>> 2 0010

op Form Meaning

&= x &= y x = x & y

|= x |= y x = x | y

^= x ^= y x = x ^ y

<<= x <<= y x = x << y

>>= x >>= y x = x >> y

>>>= x >>>= y x = x >>> y

System.out.println(~2);System.out.println(2&1);System.out.println(2|1);System.out.println(2<<1);System.out.println(2<<2);System.out.println(-4>>1);System.out.println(-1>>>1);

ไดแ้ก่ ==, !=, >, <, >=, <= ใชทํ้าการเปรยีบเทยีบคา่ของ operands ทมีชีนดิขอ้มลูเป็น byte, char, short, int, long, float และ double สําหรับชนดิขอ้มลู boolean จะทําการเปรยีบเทยีบเทา่กบั หรอื ไม่เทา่กบัไดเ้ทา่นัน้ผลลพัธจ์ากการเปรยีบเทยีบจะไดเ้ป็นคา่ boolean

Operator Meaning Example Result

> more than a > b false

< Less then a < b true

>= More than and equal a >= b false

<= Less than and equal a <= b true

== Equal a == b false

!= Not equal a != b true

int a = 0, b = 1;

เปน operat0rs ที่ใชกับ operands ที่มีชนิดขอมูลเปน booleanเทานั้น และใหผลลัพธเปน boolean แบงเปน 3 กลุม

Boolean Logical Operators◦ ไดแก & (AND), | (OR), ^ (XOR), ! (NOT)

Short-circuit Logical Operators◦ ไดแก && (short-circuit AND) , || (short-circuit OR)

Assignment Logical Operators◦ ไดแก &= , |=, ^=

X Y RESULT

T T T

T F F

F T F

F F F

AND

Boolean Logical Operator& b = false & true false| b = false | true true^ b = false ^ true true! b = !true false

Short-circuit logical Operator&& b = false && true false|| b = true || true true

boolean b;

System.out.println(1<2 & 4==1);System.out.println(1<2 | 4==1);System.out.println(!true ^ 1==1);System.out.println(!(4!=1));

F ^ T …T……?…….

T T T

T F F

F T F

F F F

if (5 > 4) & (7 < 9) {…..}

T T

T T T

T F T

F T T

F F F

if (5 > 4) & (7 < 9) {…..}

T T T

T T F

T F T

F T T

F F F

Operators ? ใชร้ว่มกบั : โดยมรีปูแบบดงันี้

ถา้คา่ของ <condition> เป็น true คา่ทีไ่ดจ้ะเป็น <expression 1>

แตถ่า้เป็น false คา่ทีไ่ดจ้ะเป็น <expression 2>

เชน่ System.out.println((a<b)? "aนอ้ยกวา่b":"aมากกวา่หรอืเทา่กบัb" );

(<condition>)? <expression 1> : <expression 2>;

(4 > 8)? “ 4 มากกวา่ 8” : “4 น้อยกวา่ 8”

if(4 > 8) {…

} else {…

}

(1==1)? …………………… : …………………..

int X=5; System.out.println((X==1)? “X เท่ากบั 1” : “X ไม่เท่ากบั 1 ”);

True False

int x=5;if(x==1) {…..

} else {…..

}

ให ้รบั ตวัเลข เขา้มา แลว้ ตรวจสอบดวู่าเป็น เลขคู ่หรอืเลขคี่

1. ใหเ้ขยีนแบบ IF2. ใหเ้ขยีนแบบ conditional Operator

จงเขียนโปรแกรมคิดคาํนวณ ค่าเช่าห้อง โดย รบั จาํนวนห้อง

และ จาํนวนคืนท่ีค้าง

หมดข้อมลู หรือยงั [ Y/N ] คิดรายได้ทัง้หมด ใน 1 เดือน (30 วนั)

1. import java.util.Scanner;……………………..Scanner Sc = new Scanner(System.in);System.out.print(“Enter Number : ”);int x = Sc.NextInt();if(x % 2 == 0) {

System.out.println(x + “ เป็นเลขคู”่);} else {System.out.println(x + “ เป็นเลขคี”่);

}

1. import java.util.Scanner;……………………..Scanner Sc = new Scanner(System.in);System.out.print(“Enter Number : ”);int x = Sc.NextInt();System.out.println( (x % 2 == 0)? x + “ เป็นเลขคู”่

: x + “ เป็นเลขคี”่ );

[],(), op++, op--

++op,--p, +op, -op, ~, !

New, (type)op

*,/,%

+,-

<<,>>,>>>

<,>,>=,<=,instanceof

==,!=

&

^

|

&&

||

?:

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

สําคัญมาก

สําคัญนอย

ลําดับการกระทําของ operators ที่มีลําดับความสําคัญเทากัน มีทั้งการทําจากซายไปขวา และขวาไปซาย เรียกวา associativity ข้ึนอยูกับชนิดของ operator เชน operators = ม ีassociativity ทางขวา คือจะทําจากขวามาซาย เชน

a = b = c = 1 ; ทํางานดังนี้ a = (b = (c = 1))operators + , - มี associativity ทางซาย คือจะทาํจากซายมาขวา

a + b – c + d ; ทํางานดังนี้ ((a + b) – c) + d

System.out.println(1 + 2 * 3 - 2);System.out.println((1 + 2) * (3 -2));System.out.println(2 * -5 - 17 % 3/ 2 + 26 * 2 + 4);

ทดลองใสวงเล็บใหถูกตองตามลาํดับของ Operator

เม่ือตองการดําเนินการทางคณิตศาสตรระหวาง operands ท่ีมีชนิดขอมูลท่ีแตกตางกัน จะตองแปลงชนิดขอมูลใหเปนชนิดเดียวกันกอน แบงการแปลงออกเปน 2 ประเภท คือ

Implicit type conversion ◦ เปนการแปลงชนดิขอมูลที่ภาษาจาวาทําใหโดยอัตโนมัติตามความเหมาะสม

Explicit type conversion (หรือ Casting) ◦ เปนการแปลงชนดิขอมูลที่ผูเขียนโปรแกรมตองทําดวยตนเอง

Operand byte char short int long float double

byte int int int int long float double

char int int int int long float double

short int int int int long float double

int int int int int long float double

long long long long long long float double

float float float float float float float double

double double double double double double double double

ผลลพัธข์องการใชO้perators รว่มกนั Operand ชนิดต่าง ๆ

เปนการแปลงชนิดขอมูลที่ผูเขียนกําหนดเอง

รูปแบบ

เชน a = (int)(c + b);

ควร casting ชนิดขอมูลจากคาที่เล็กกวาไปเปนคาที่ใหญกวา เพื่อลดการสูญหายของขอมูล

(<type>)<operand>

ชนดิขอ้มลู ขนาดขอ้มลูdouble

float

long

int

short

byte

ขนาดใหญ่

ขนาดเล็ก

float a = 1.0F, b = 2.5F;int c;double d;d = a + b;System.out.println("d = " + d);c = (int)(a + b);System.out.println("c = " + c);

คลาส Scanner อยูใน package java.util.Scanner จงึตองมีการ

import กอน

จากน้ันทําการสรางวัตถุจากคลาส Scanner โดยมีรูปแบบดังน้ี

Scanner keyboard = new Scanner(System.in);

ตัวอยางการใชงาน

int number;Scanner keyboard = new Scanner(System.in);System.out.print(“Enter an interger value: ”);number = keyboard.nextInt();

เมธอด การทาํงาน

nextByte() รับขอ้มลูเลขจํานวนเต็มชนดิ Byte ทางแป้นพมิพ์

nextDouble() รับขอ้มลูเลขทศนยิมชนดิ Double ทางแป้นพมิพ์

nextFloat() รับขอ้มลูเลขทศนยิมชนดิ Float ทางแป้นพมิพ์

nextInt() รับขอ้มลูเลขจํานวนเต็มชนดิ Int ทางแป้นพมิพ์

nextLine() รับขอ้มลูแบบ String ทางแป้นพมิพ์

nextLong() รับขอ้มลูตวัเลขชนดิ Long ทางแป้นพมิพ์

nextShort() รับขอ้มลูตวัเลขชนดิ Short ทางแป้นพมิพ์

7.5

15.5

Enter Your Name : ….Dr.Nattapong Songneam Your Name is :…… ….Dr.Nattapong Songneam.

String

import java.util.Scanner; //เรยีกใชค้ลาส Scannerpublic class calnum {

public static void main(String[] args){int x,y; //ประกาศตวัแปร x และ y สาํหรบัเกบ็เลขจาํนวนเตม็Scanner in = new Scanner(System.in); //สรา้งออบเจก็ต ์in สาํหรบัรบั

ขอ้มลู

System.out.print("Input Number 1 : ");x = in.nextInt(); //รบัตวัเลขจาํนวนเตม็มาเกบ็ในตวัแปร xSystem.out.print("Input Number 2 : ");y = in.nextInt(); //รบัตวัเลขจาํนวนเตม็มาเกบ็ในตวัแปร ySystem.out.println(x + " + " + y + " = " + (x+y) ); //แสดงผลการบวก

} }

Operators ? ใชรวมกับ : โดยมีรูปแบบดังน้ี

ถาคาของ <condition> เปน true คาท่ีไดจะเปน <expression 1> แตถาเปน false คาท่ีไดจะเปน <expression 2>

เชน System.out.println((a<b)? "aนอยกวาb":"aมากกวาหรือเทากับb" );

(<condition>)? <expression 1> : <expression 2>;

ถา้ ตวั x หาร ดว้ย 5 ลง ให ้“Print X” ถา้ไมใ่ช ่ให ้“Print Y”

System.out.println((x % 5 ==0)? “Print X” :” Print Y” );

X หารตวั 5 ลงตวัหรอืไม่

(X % 5 ==0)? X + “หารดว้ย 5 ลงตวั” : x + “หารดว้ย 5 ไมล่งตวั”

T F

1 2 3

5

7

11

13

17

145 เป็น Prime Number หรอืไม่

187 เป็น Prime Number หรอืไม่

5145 เป็น Prime Number หรอืไม่

8115 เป็น Prime Number หรอืไม่

X เป็น Prime Number หรอืไม่

int x=9; int y=1; if(x%y == 0) { … } else {

}

1 หาร X ลงตวั หรอืไม ่ ไมต่อ้งทํา เพราะ 1 หารทกุตวัลงตวั

อยูแ่ลว้ ไมนั่บ

X ใดๆ หาร X ลงตวั หรอืไม ่ ไมต่อ้งทํา เพราะ X หารตวัมนั

เองลงตวัอยูแ่ลว้ ไมนั่บ

2 .... X-1

1 หาร X ลงตวั หรอืไม ่ ไมต่อ้งทํา เพราะ 1 หารทกุตวัลงตวั

อยูแ่ลว้ ไมนั่บ

X ใดๆ หาร X ลงตวั หรอืไม ่ ไมต่อ้งทํา เพราะ X หารตวัมนั

เองลงตวัอยูแ่ลว้ ไมนั่บ

2 .... X/29/2 = 4

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8

i<=x-1

import java.util.Scanner;public class FindTriangle {public static void main(String[] args) {

double height = 0 , base = 0 , result = 0;Scanner input = new Scanner(System.in);System.out.println("โปรแกรมหาพื้นท่ีสามเหล่ียม");

System.out.println("กรณุาป้อนความสงู ");

height = input.nextDouble();System.out.println("กรณุาป้อนความยาวฐาน ");

base = input.nextDouble();result = 0.5 * height * base;System.out.println("พื้นท่ีสามเหล่ียม = " + result );

}}

สรางโปรแกรมแปลงหนวย โดยรับ Input ทาง Keyboard ตั้งช่ือ Project และ Class วา DataConv

ดูอัตราการแปลงหนวยไดท่ีเว็บไซตhttp://navy.in.th/dataconv.html

โดยเลือกแปลงหนวยอะไรก็ไดคนละ 1 หนวย

สงไฟลท่ีเปน SourceCode.java มาท่ีE-mail siam2dev@hotmail.com หัวเร่ืองอีเมล DataConv_2015.XX_56XXXXXXX

รับตวัเลขใดๆ [1 - 12] แลว้แสดงสตูรคณู ของแม่สตูรคณูนัน้ๆ

ต.ย. รับ 8◦ 8*1 = 8◦ 8*2 = 16◦ 8*3 = 24◦…◦ 8*12 = 96

Test_Multiply

80 ใหเ้กรด A 70-79 ให ้B 60 – 69 ให ้C 50 – 59 ให ้D 0-49 ให ้E

Scanner + if / switch

ตํา่กวา่ 5000 ใหข้ึน้เงนิเดอืน 20%

5001-10000 ใหข้ึน้ 15%

10001 – 50000 ใหแ้ค ่10%

มากวา่ 50000 ให ้5 %

Scanner + if / switch

รบัจํานวน และ ราคา

ราคาสนิคา้รวม ตํา่กวา่ 10000 ลด 20% 10001 – 50000 ลด 15% 50001 – ขึน้ไป ลด 10%

Scanner + if / switch

สามเหล่ียม

สีเหล่ียม

วงกลม

วงรี

เส้นรอบวง

ทรงกลม

ส่ีเหล่ียมคางหมู

สตูร พ.ท. + INPUT