Transcript javaslide

WELCOME
To
Java Programming
ความรู้ เบือ้ งต้ นเกีย่ วกับ Java
 เป็ นภาษาการเขียนโปรแกรมเชิ งวัตถุ (OOP)
(Object Oriented Programming)
 โปรแกรม SDK (Software Development Kit)
 เขียนโปรแกรมแสดงบน Internet หรื อ บน
Command Line
 นามสกุลไฟล์ .java
Class
Class คือ ต้ นแบบของการกาหนดตัวแปร
และ Method
ประโยชน์ ของ Class
1. การแบ่ งออกเป็ น Class ทาให้ โปรแกรมทีส่ ร้ าง
ขึน้ มาง่ ายต่ อการแก้ ไข
2. แต่ ละ Class ไม่ มผี ลอย่ างใดกับ Class อืน่
เมือ่ มีการแก้ ไข
ประเภทของ Java
 Java
Script เขียนโปรแกรมฝังตัวไว้ ใน Web
Page
 Java
Java Applet
Java Application
ไฟล์ โปรแกรมของ SDK
 ใช้ Compile Source
Code นามสกุล .java เป็ นนามสกุล .class
 javac.exe
 ใช้ Run ไฟล์ จุด class ของ
Java Application
 appletviewer.exe  ใช้ Run ไฟล์ จุด
HTML ของ Java Applet
 java.exe
โปรแกรมที่ใช้ เขียนภาษา Java
 Notepad
 WordPad
 Edit
DOS
 Edit plus
 ฯลฯ
โครงสร้ างภาษา Java Application
class name
{
public static void main(String[] arg)
{
// add Code Java
}
}
โครงสร้ างภาษา Java Applet
import Package;
เรียกใช้ คาสั่ งสาเร็จรู ปต่ าง
public class name extends Applet
{
//add Code Java
ชื่อไฟล์ เอกสาร Java
}
ตัวอย่ างการสร้ างไฟล์ Java Application
ชื่อไฟล์ java1.java
class java1
{
public static void main(String arg[])
{
System.out.println(“Welcome To Java”);
}
}
การ Compile Java Application
C:\jdk>พิมพ์ .\bin\javac
ชื่อไฟล์ .java
การ Run Java Application
C:\jdk>พิมพ์ .\bin\java ชื่อไฟล์ (ไม่มีนามสกุล)
การสร้ างไฟล์ Java Applet
1. สร้ างไฟล์ java
2. Compile
3. สร้ างเอกสาร HTML
4. Run แสดงผล
ตัวอย่ างการสร้ างไฟล์ Java Applet
ชื่อไฟล์ java2.java
import java.awt.*;
import java.applet.*;
public class java2 extends Applet
{
public void paint(Graphics g)
{
g.drawString(“Welcome To Java”,50,100);
}
}
สร้ างไฟล์ เอกสาร HTML
<html>
ชื่อไฟล์ java2.html
<head><title>ชื่อหน้ าต่ าง</title></head>
<body>
<applet code=“ชื่อไฟล์ .class” width=กว้ าง height=สู ง>
</applet>
</body>
</html>
Package (Java Class Library)
Standard Package
 java.applet -> ใช้ สร้ าง Applet
 java.awt -> สร้ าง GUI (Graphical user interface)
 java.io -> ทางานด้ าน I/O
 java.lang -> ทางานด้ านการคานวณตัวเลข
 java.net -> สร้ างการติดต่ อระบบเครื อข่ าย
 java.util -> การเข้ ารหัส/ถอดรหัส, วัน/เวลา
 java.awt.image -> สร้ างและทางานกับรู ปภาพ
 javax.swing -> สร้ าง Swing GUI
การเรียกใช้ งาน Package
 รู ปแบบ
import ชื่อแพ็กเกจ.*;
เช่ น
import java.util.*;
import java.util.Calendar;
คาสั่ งแสดงผล
System.out.println(“ข้ อความ”);
System.out.println(ตัวแปร);
System.out.println(“ข้ อความ”+ตัวแปร);
System.out.println();
System.out.print(“ข้ อความ”+ตัวแปร); ไม่ ขนึ้ บรรทัดใหม่ ให้
ชนิดของตัวแปร
ประเภทตัวเลข (Numeric)
•ตัวเลขจานวนเต็ม (Integer)
byte 8 bit,
short 16 bit
*int 32 bit,
long 64 bit
•ตัวเลขทศนิยม (Real)
float 32 bit,
*double 64 bit
ชนิดของตัวแปร
ประเภทตัวอักษร (Character)
char 16 bit
ประเภทตรรกศาสตร์ (Boolean)
boolean 1 bit == > true / false
ประเภท Class ข้ อความ
String
การตั้งชื่อ (Identifier)
•
•
•
•
ต้ องขึน้ ต้ นด้ วยตัวอักษร
ความยาวไม่ จากัด
ห้ ามเว้ นวรรค ยกเว้ น ใช้ _(underscore), $
ตัวอักษรพิมพ์เล็ก พิมพ์ใหญ่ ถือว่ าต่ างกัน
การประกาศตัวแปร
ชนิดข้ อมูล ชื่อตัวแปร;
เช่ น
String name,Name;
int num1,num2;
การกาหนดค่ าคงที่
ค่ าคงที่จานวนเต็ม กาหนดค่ าคงที่
เลขจานวนเต็ม
เลขฐาน 10
0(ศูนย์ ) นาหน้ าเลขจานวนเต็ม
เลขฐาน 8
0x นาหน้ าเลขจานวนเต็ม
เลขฐาน 16
เช่ น 20 ฐาน 8 เป็ น 024 ฐาน 16 เป็ น 0x14
การกาหนดค่ าคงที่
ตัวเลขทศนิยม กาหนดค่ าคงที่
จะใช้ f หรือ F ต่ อท้ ายเลขทศนิยม
float
D หรือ d (ไม่ใส่ กไ็ ด้)
double
เช่ น 100.0f หรือ 100.65d
การกาหนดค่ าคงที่
ค่ าคงที่ตวั อักษร กาหนดค่ าคงที่
ใช้ เครื่องหมาย ‘ ’ ครอบตัวอักษร
char
ค่ าคงที่ตวั อักขระ
ใช้ เครื่องหมาย “ ” ครอบ
String
ตัวดาเนินการ (Operator)
ทางด้ านการคานวณ
 Operator ทางการเปรี ยบเทียบ
 Operator ทางการกาหนดค่ า
 Operator ทางตรรกะ
 Operator
Operator ทางการคานวณ
ตัวดาเนินการ
ตัวอย่าง
ลาดับการกระทา
+
ความหมาย
ยูนรี(Unary)
+x
1
-
ยูนรี(Unary)
-x
1
+
บวก
x+y
3
-
ลบ
x-y
3
*
คูณ
x*y
2
/
หาร
x/y
2
%
หารเอาเฉพาะเศษ
x%y
2
Operator ทางการคานวณ
Increment (การเพิม่ ค่ า) (++)
เช่น a++  a=a+1
Decrement (การลดค่ า) (--)
เช่น a--  a=a-1
Ex a=5
x=a++;
x=++a;
 x=5 a=6
 x=6 a=6
ตัวอย่ าง <op1.java>
class op1
{
public static void main(String arg[])
{
int x=5, y=4, sum;
sum=y*x++; //sum=y*++x;
System.out.println("x=5 y=4");
System.out.println("sum=y*x++ ="+sum);
}}
Operator ทางการกาหนดค่ า






= เท่ ากับ
+= เช่ น A+=3  A=A+3
-=
*=
/=
%=
ตัวอย่ าง Operator ทางการกาหนดค่ า
<op2.java>
Operator ทางการเปรียบเทียบ
ตัวดาเนินการ
นิพจน์
<
>
==
!=
<=
>=
A<B
A>B
A==B
A!=B
A<=B
A>=B
ความหมาย
A น้ อยกว่ า B
A มากกว่ า B
A เท่ ากับ B
A ไม่ เท่ ากับ B
A น้ อยกว่ าหรือเท่ ากับ B
A มากกว่ าหรือเท่ ากับ B
ตัวอย่ าง Operator ทางการเปรียบเทียบ
<op3.java>
Operator ทางตรรกะ
ตัวดาเนินการ ความหมาย
ตัวอย่ าง
ลาดับการทางาน
และ(And)
(a<20)&&(b<50)
2
&&
||
!
หรือ(Or)
(a<20)||(b<50)
3
ไม่ เป็ นจริง
(Not)
!(a<20)
1
การใช้ ตัวดาเนินการทางเชิงตรรกะ
A
B
A&&B
A||B
!B
T
T
T
T
F
T
F
F
T
T
F
T
F
T
F
F
F
F
F
T
ตัวอย่ าง Operator เชิงตรรกะ
<op4.java>
ตัวอย่ าง การประกาศตัวแปรตัวอักษร
<op5.java>
การกาหนดคาอธิบาย (Comment)
Comments แสดงคาอธิบายภายใน
บรรทัด ใช้ เครื่องหมาย // เป็ นจุดเริ่มต้ น และสิ้นสุ ดเมือ่
จบบรรทัด //Start Program //Stop Program
 Block Comments แสดงคาอธิบายเป็ น
กลุ่ม หลาย บรรทัด ใช้ เครื่องหมาย /* เป็ นจุดเริ่มต้ น
คาอธิบาย และ */ เป็ นจุดสิ้นสุ ดคาอธิบาย
 In-line
การจัดการกับ String
String ตัวแปร=“ค่ า”;
“ ”ห้ ามอยู่คนละบรรทัด
“ ” = null ค่ าว่ าง
การหาความยาว String
String.length();
เช่ น
String fname=“Viyada”;
int n=fname.length();
ภาษาไทยนับสระ วรรณยุกต์ บนล่างด้ วย
<ตัวอย่ าง length1.java>
การดึงข้ อความบางส่ วน (Sub String)
ตัวแปรString.substring(ค่ าเริ่มต้ น,ค่ าสิ้นสุ ด);
ตัวแปรString.substring(ค่ าเริ่มต้ น);
ค่ าเริ่มต้ น เริ่มนับจาก 0,1,2…
ค่ าสิ้นสุ ดเริ่มนับจาก 1,2,3…
<ตัวอย่ าง substring1.java>
การดึงตัวอักษร 1 ตัว
String.charAt(ตาแหน่ งตัวอักษร)
เริ่มนับจาก 0,1,2…
<ตัวอย่ าง charAt1.java>
การแทนที่ข้อความ
String.replace(ตัวอักษรเดิม,ตัวอักษรใหม่ );
เช่ น
String S=“Java”.replace(‘a’,‘o’);
คานึงการค้ นหา+แทนที่แบบตัวพิมพ์เล็ก-ใหญ่
<ตัวอย่ าง replace1.java>
การเปลีย่ นตัวอักษรใน String
String.toUpperCase();//ตัวพิมพ์ใหญ่
String.toLowerCase();//ตัวพิมพ์เล็ก
เช่ น
String st=“Java Programming”;
String upper=st.toUpperCase();
String lower=st.toLowerCase();
<ตัวอย่ าง UpperLower.java>
การกลับด้ านข้ อความ (Reverse)
String.reverse();
StringBuffer ตัวแปร=new StringBuffer(“ข้ อความ");
System.out.println(ตัวแปร .reverse());
<ตัวอย่ าง reverse1.java>
การชี้ตาแหน่ ง Index
รูปแบบ
indexOf(‘ตัวอักษร’)
เริ่มนับจาก 0,1,2…
<ตัวอย่ าง indexOfDemo.java>
Work สร้ างรหัสลับ
<password.java>
เขียนโปรแกรมค้ นหาตัวอักษรพร้ อมจัดรู ปแบบ
คาต่ อไปนี้ “Siam Computer.”
ผลลัพธ์ Mr.Siam
การแปลงค่ าข้ อมูล
ประเภทรูปแบบการแปลงค่ าข้ อมูล
 Casting
 toString
 Integer.parseInt()
Double.parseDouble()
การแปลงค่ าในรูปแบบ Casting
รู ปแบบคาสั่ ง
(ประเภทข้ อมูล)ตัวแปร
เช่ น int
x; float y=45.5f;
x=(int)y;
<ตัวอย่ าง casting1.java>
การแปลงค่ าในรูปแบบ toString()
แปลงจากตัวเลขเป็ นตัวอักษร
String ตัวแปร=“”+ตัวเลข;
หรือ
String ตัวแปร=Integer.toString(ตัวเลข);
String ตัวแปร=Double.toString(ตัวเลข);
String ตัวแปร=Float.toString(ตัวเลข);
<ตัวอย่ าง ToString.java>
Work นับตาแหน่ งตัวเลข
<ToStringDemo.java>
เขียนโปรแกรมนับตาแหน่ งตัวเลขทั้งหน้ าและ
หลังจุดทศนิยม
เปลีย่ นค่ าตัวอักษรเป็ นตัวเลข
int ตัวแปร=Integer.parseInt(String);
double ตัวแปร=Double.parseDouble(String);
float ตัวแปร=Float.parseFloat(String);
<ตัวอย่ าง change1.java>
การจัดรูปแบบตัวเลขทศนิยม
ต้ องประกาศ import java.text.*; ก่ อน
NumberFormat ตัวแปร=NumberFormat.getNumberInstance();
ตัวแปร.setMaximumFractionDigits(2);
ตัวอย่ าง
//แสดงทศนิยม 2 ตาแหน่ งพร้ อมปัดค่ าขึน้
<formatnum.java>
ตัวแปร.setMinimumFractionDigits(2);
//เติมเลข 0 ต่ อท้ าย ถ้ ามีทศนิยมเพียงตาแหน่ งเดียว
จัดรู ปแบบ ตัวแปร.format(ตัวเลขทศนิยม);
การรับข้ อมูลทางคีย์บอร์ ด
1. การใช้ System.in.read รับค่า character
2. การใช้ BufferedReader รับค่า String
ร่ วมกับ InputStreamReader
ทิศทางในการรับค่ าและนามาเก็บในตัวแปรใด
และ ต้ องใช้ คาสั่ ง “throws IOException”
ต่ อท้ าย public static ...
และ Package ชื่อ “java.io” ร่ วมกันเสมอ
ประกาศ Import ไว้ ก่อน class
การใช้ System.in.read
ใช้ รับค่ าตัวอักษร 1 ตัว
รู ปแบบ
char ตัวแปร;
ตัวแปร=(char)System.in.read();
<ตัวอย่ าง Read1.java>
การใช้ BufferedReader
แบบ 1
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader stdin=new BufferedReader(reader);
แบบ 2
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
Method ทีใ่ ช้ รับข้ อความ
ตัวแปร=stdin.readLine();
<ตัวอย่ าง Read2.java>
Work รับค่ าข้ อมูล
<Age.java>
เขียนโปรแกรมรับค่ าดังต่ อไปนี้
Control Statement
1. ทางานเรี ยงลาดับคาสั่ งลงมาตั้งแต่ ต้น
โปรแกรมจนจบโปรแกรม
2. กระทาซ้า เป็ นการทางานตัวเดิมซ้า กัน
3. เลือกกระทาเฉพาะคาสั่ งที่ตรงกับเงื่อนไขที่
กาหนด
คาสั่ งควบคุม (Control Statement)
 คาสั่ งควบคุมให้ โปรแกรมทางานซ้า เช่ น for,
while, do..while
 คาสั่ งควบคุมแบบมีเงือ
่ นไข เช่ น if, switch
 คาสั่ งควบคุมอืน
่ เช่ น break,
continue
For Statement
for (start_value ;condition ;step)
{
start_value = ค่ าเริ่มต้ น
statement ; condition = เงือ่ นไข
step = เพิม่ ค่ าจานวนรอบ, วนรอบ
}
Flow-Chart For Statement
Start_value
Condition
true
Step
Statement
False
ออกจากFor
ตัวอย่ าง
for(int x=1;x<=5;x++)
System.out.println("Hello World!");
for(int y=1;y<=5;y+=2)
System.out.println(y);
ตัวอย่ าง forloop.java
for(int x=10;x>=1;x--)
System.out.print(x+“ ”);
10 9 8 7 6 5 4 3 2 1
ตัวอย่ างแสดงตัวอักษร A-Z
for(char x='A';x<='Z';x++)
System.out.print(x+" ");
ABCD…Z
Work แสดงรหัส ASCII
<forASCII.java>
เขียนโปรแกรมแสดงรหัส ASCII โดยใช้ For
Work รับค่ าเริ่มต้ น-สิ้นสุ ด
<fortest.java>
เขียนโปรแกรมรับค่ าเริ่มต้ น-สิ้นสุ ด พร้ อมหาผลรวมและจานวนรอบ
Work รับค่ าตัวเลข 2 ค่ า
<forwork.java>
เขียนโปรแกรมรับค่ า x,y คานวณหาค่ าตัวเลข
x ยกกาลัง y (xy)
การใช้ For ซ้ อนกัน
for(Start_value;condition;step)
{
for(Start_value;condition;step)
{
Statement;
}
}
ตัวอย่ าง (for1.java)
int x,y;
for(x=1; x<=3; x++)
{ System.out.print(x+" => ");
System.out.println();
for(y=1; y<=5; y++)
{System.out.print(y+". Siam
Computer\n");}
}
Work แสดงค่ าข้ อมูล
<printstar.java>
เขียนโปรแกรมแสดงค่ าดังนี้
Work แสดงค่ าตัวเลข
<printnumber.java>
เขียนโปรแกรมแสดงตัวเลขค่ าดังนี้
Work แสดงค่ าข้ อมูล
<printOX.java>
เขียนโปรแกรมแสดงค่ าดังนี้
Work แสดงค่ าตัวเลข
<forfor.java>
เขียนโปรแกรมแสดงค่ าตัวเลขดังนี้
Work ตารางสู ตรคูณ
<fordouble.java>
เขียนโปรแกรมสร้ างตารางสู ตรคูณ
Work ตารางสู ตรคูณ
<formulti.java>
เขียนโปรแกรมรับค่ าขนาดของตารางสู ตรคูณ
While Statement
while (condition)
{
statement ;
}
Flow-Chart
False
condition
Statement นอก Loop
.
.
end
True
Statement ใน Loop
.
.
ตัวอย่ าง
int x=1;
while(x<=10)
{
System.out.println(x);
x++;
}
ตัวอย่ าง
int x=0;
while(++x<=10)
{
System.out.println(x);
}
Work แสดงอุณหภูมิ
<formattemp.java>
เขียนโปรแกรมแสดงอุณหภูมิองศาเซลเซียส และฟาเรนไฮต์
จาก 90 องศา ถึง 100 องศา ด้ วยสมการ f=c/5*9+32
Work รับค่ าตัวอักษร
<whilechar.java>
เขียนโปรแกรมแสดงการรับค่ าตัวอักษรใด
จนกว่ าจะป้ อน * จึงหยุดการรับค่ า
char c;
System.out.print("ป้อนข้ อมูลใด 1 ตัวอักษร : ");
c=(char)System.in.read();
while(c !='*')
{ c=(char)System.in.read(); }
Work รับค่ าตัวอักษร
<whileXx.java>
เขียนโปรแกรมรับค่ าตัวอักษรใด
จนกว่ าจะป้ อนตัวอักษร X หรือ x จึงหยุดรับค่ า
Work รับค่ าตัวเลข
<whiletest.java>
เขียนโปรแกรมรับค่ าตัวเลข และหาผลรวมตัวเลข
และจานวนรอบ ถ้ าป้อน 0 หยุดการรับค่ า
Work รับค่ าตัวเลข
<whilefac.java>
เขียนโปรแกรมรับค่ าตัวเลข แล้ วนาไปหาค่ า
factorial
Do-While Statement
do
{
statement ;
} while (condition) ;
Flow-Chart
Statement ;
.
.
False
condition
True
ตัวอย่ าง <do1.java>
int data=0,sum=0;
do
{
data++;
System.out.println(data);
sum+=data;
} while(data<10);
ตัวอย่ าง <do2.java>
char c;
do{
System.out.print("ต้ องการทางานต่ อหรือไม่ ? y/n :
");
do{
c=(char)System.in.read();
}while((c!='n')&&(c!='y'));
}while(c=='y');
Work รับค่ าตัวเลข
<dowhiletest.java>
เขียนโปรแกรมรับค่ าตัวเลข และหาผลรวมตัวเลข
และจานวนรอบ ถ้ าป้อน 0 หยุดการรับค่ า
Work รับค่ าตัวเลข
<dowhilefac.java>
เขียนโปรแกรมรับค่ าตัวเลข แล้ วนาไปหาค่ า
factorial
การใช้ คาสั่ งตรวจสอบเงื่อนไข
เป็ นการตรวจสอบค่ าของตัวแปร ที่รับเข้ ามา
โดยใช้ Operator การเปรียบเทียบ
เป็ นตัวควบคุมเงือ่ นไข
คาสั่ งที่ใช้ มี if, switch
If Statement
if (condition)
{ statement ; }
Flow-Chart
False
condition
True
Statement ;
ตัวอย่ าง
int x=6;
if (x>5)
{
System.out.println("more than 5 =
"+x);
}
ตัวอย่ าง
int a=5;
if(a<=10)
{
System.out.println("Hello World!");
}
System.out.println("Bye...");
Work แสดงตัวเลข
<iftest.java>
เขียนโปรแกรมแสดงตัวเลขตั้งแต่ 1 - 20
และถ้ าตัวเลขที่ 3 หารลงตัวให้ แสดง * กากับด้ วย
และให้ แสดงตัวเลขเฉพาะที่ 3 หารลงตัว
1 2 *3 4 5 *6 7 8 *9 ... 20
3 6 9 12 15 18
Work รับค่ าตัวเลข
<ifwork.java>
เขียนโปรแกรมรับค่ าตัวเลขหาค่ าตา่ สุ ดและสู งสุ ด
หยุดรับค่ าเมื่อป้ อนค่ าตัวเลขติดลบ
Work รับค่ าตัวเลข
<valuenum.java>
เขียนโปรแกรมรับค่ าตัวเลขหา จานวนรอบ, ผลรวม,
ค่ าเฉลีย่ , ค่ าสู งสุ ดและตา่ สุ ด หยุดรับค่ าเมื่อป้อนค่ าตัวเลข 0
Work ย่ อยธนบัตรและเหรียญ
<money.java>
เขียนโปรแกรมย่ อยธนบัตรและเหรียญ
1000, 500, 100, 50, 20, 10, 5, 1
If…Else Statement
if (condition)
{ statement ; }
else
{ statement ; }
Flow-Chart
False
Statement ;
condition
True
Statement ;
ตัวอย่ าง
int a=10;
if(a<5)
System.out.println("ผลลัพธ์ "+a+"< 5");
else
System.out.println("ผลลัพธ์ "+a+">=
5");
Work รับค่ าตัวเลข
<ifelsetest.java>
เขียนโปรแกรมรับค่ าตัวเลขตั้งแต่ 1 - 31 เท่ านั้น
ถ้ าป้อนนอกจากนีใ้ ห้ ทาการป้อนใหม่
Work ทายตัวเลข
<ifelsework.java>
เขียนโปรแกรมทายตัวเลขที่คนที่ 1 ป้ อนเข้ ามา
โดยให้ คนที่ 2 เป็ นคนทาย (ทายได้ 5 ครั้ง)
ถ้ าป้ อนมากกว่ าแสดง “Larger…try again”
ถ้ าป้อนน้ อยกว่ าแสดง “Smaller…try again”
ถ้ าทายถูกแสดง “Your Win!!!”
ถ้ าทายไม่ ถูกแสดง “Your Lose!!!”
If…Else ซ้ อนกัน
if(condition)
{statement;}
else if(condition) {statement;}
else if(condition) {statement;}
else {statement;}
Flow-Chart
condition false
true
Statement;
condition
true
Statement;
false
condition
true
Statement;
false
Statement;
ตัวอย่ าง
int sc;
System.out.print("Enter score :");
sc=Integer.parseInt(stdin.readLine());
if(sc<50)
System.out.println("Score : "+sc+" Grade : F");
else if(sc>=50 && sc<=69)
System.out.println("Score : "+sc+" Grade : P");
else System.out.println("Score : "+sc+" Grade : G");
Work คิดเกรด
<ifelsegrade.java>
เขียนโปรแกรมรับค่ าคะแนน และคิดเกรดตามเงือ่ นไข
Work รับค่ าตัวเลข
<ifcal.java>
เขียนโปรแกรมรับค่ าตัวเลขคานวณตาม Operator + - * /
Switch Statement
switch (variable)
{ case value1: statement ;
break;
case value2 : statement ;
break;
default: statement ; break;
}
Flow-Chart
ค่ าคงที่
false
ค่ าคงที่
true
Statement;
true
false true
ค่ าคงที่
false
Statement;
Statement;
Statement;
ตัวอย่ าง
int x;
System.out.print("Enter number : ");
x=Integer.parseInt(stdin.readLine());
switch(x) {
case 1:
System.out.println("ONE"); break;
case 2:
System.out.println("TWO"); break;
default:
System.out.println("Not Found"); break; }
ตัวอย่ าง
<switchmenu.java>
Work ตรวจสอบวันหยุด
<switchtest.java>
เขียนโปรแกรมตรวจสอบวันหยุด
วันที่ 1 - 3
ลาพักร้ อน
วันที่ 14 - 20
ลากิจ
นอกเหนือจากนี้ ทางานปกติ
Break statement
คาสั่ ง break
ใช้ ควบคุมให้ โปรแกรมออกจาก Loop คาสั่ งทีก่ าหนด
จะใช้ ร่วมกับคาสั่ ง switch, while, for,
do..while
ตัวอย่ าง
int x;
for(x=1;x<=10;x++)
{
System.out.println(x);
if(x==5)
break;
}
Work รับค่ าตัวอักษร
<breakwork.java>
เขียนโปรแกรมรับค่ าตัวอักษรใด จนกว่ าจะป้อน a จึงหยุด
char x;
System.out.println(“ป้อนตัวอักษรใด 1 ตัว (ป้อน a
หยุด) :");
for(;;) { x=(char)System.in.read();
if(x=='a')
break;
}
Continue Statement
คาสั่ ง continue
เป็ นคาสั่ งทีต่ ้ องการให้ ข้ามบางคาสั่ งซึ่งอยู่ใน Loop
เพือ่ เริ่มต้ นการวนซ้าในรอบต่ อไป
ตัวอย่ าง
int x;
for(x=1;x<=10;x++)
{
if(x==5)
continue;
System.out.println(x);
}
Work แสดงตัวเลขจานวนคู่
<even.java>
เขียนโปรแกรมแสดงตัวเลขจานวนคู่
ตั้งแต่ 1 - 50
2 4 6 8 10 ... 50
ตัวอย่ าง <even.java>
int x;
for(x=0;x<=50;x++)
{
if(x%2!=0)
continue;
System.out.print(x+“ ”);
}
Work แสดงตัวเลขจานวนคู่
<odd.java>
เขียนโปรแกรมแสดงตัวเลขจานวนคี่
ตั้งแต่ 1 - 100
1 3 5 7 9 ... 99
ตัวอย่ าง <odd.java>
int x;
for(x=0;x<=100;x++)
{
if(x%2==0)
continue;
System.out.println(x+“ ”);
}
Array (ตัวแปรชุด )
Array หมายถึง ชุดของข้ อมูลทีม่ จี านวนแน่ นอน
และเป็ นข้ อมูลชนิดเดียวกัน ข้ อมูลแต่ ละ
รายการเรียกว่ า สมาชิกของอาร์ เรย์
(element of array)
แต่ ละสมาชิกของอาร์ เรย์ มี อินเด็กซ์
(index) สาหรับใช้ เพือ่ การอ้ างถึง
การสร้ าง Array
แบบที่ 1 นิยามตัวแปรแล้ วสร้ างตัวแปร
การนิยามตัวแปร
dataType[] arrayName;
หรือ
dataType arrayName[];
การสร้ างตัวแปร
arrayName=new dataType[n]
ตัวอย่ าง
double[] myList;//double myList[];
myList=new double[10];
แบบที่ 2 รวมเป็ นขั้นตอนเดียว
dataType[] arrayName=new dataType[size];
หรือ
dataType arrayName[]=new dataType[size];
ตัวอย่ าง
double[] myList=new double[10];
One-dimension array
การใส่ ค่าตัวแปร array 1 มิติ
อ้างถึงตัวแปร arrayName[Index];
index
0
1
2
3
4
3
4
5
mark
1
2
member
การกาหนดค่ าตัวแปร Array
1. กาหนดค่ าคงทีใ่ ห้ กบั สมาชิก Array ทีละคน
ตัวแปรarray[index]= ค่ า;
เช่ น
mark[0]=50;
mark[1]=35;
การกาหนดค่ าตัวแปร Array
2. กาหนดค่ าคงทีใ่ ห้ กบั สมาชิก Array ทุกสมาชิก
for(x=เริ่มต้ น;x<=ค่ าสิ้นสุ ด;x++)
ตัวแปรarray[x]= ค่ า;
เช่ น
for(x=0;x<=4;x++)
mark[x]=100;
การกาหนดค่ าตัวแปร Array
3. กาหนดค่ าเริ่มต้ นให้ กบั สมาชิก Array ทุกสมาชิก
ชนิดข้ อมูล ตัวแปรarray[]= {ค่ าสมาชิก};
index
1
2
เช่ น
0
3 4
int mark[]={50,40,15,30,10};
ใส่ ข้อมูลทีเ่ ป็ น String ลงใน Array
String S1=“The Lion King”;
String S2=“Final Fantasy”;
String S3=“Tarzan”;
String[] movie={S1,S2,S3};
การแสดงค่ าตัวแปรใน Array
1. แสดงค่ าตัวแปรทีละสมาชิก
System.out.println(ตัวแปรarray[index]);
2. แสดงค่ าตัวแปรสมาชิกทุกสมาชิก
for(x=ค่ าเริ่มต้ น;x<=ค่ าสิ้นสุ ด;x++)
System.out.println(ตัวแปรarray[x]);
<ตัวอย่ าง arraytest.java>
การรับค่ า Array ทางคีย์บอร์ ด
ตัวแปร[Index]=Integer.parseInt(stdin.readLine());
for(int x=0;x<Input;x++)
{
System.out.print("รับสมาชิก Array num["+x+"] :");
ตัวแปร[x]=Integer.parseInt(stdin.readLine());
}
<ตัวอย่ าง onearray.java>
ตัวอย่ าง
ประกาศ Array 1 มิติ และแสดงข้ อมูลใน
Array ทั้งหมด
<ตัวอย่ าง array1.java>
Work รับค่ าจานวนสมาชิก
<arraywork.java>
เขียนโปรแกรมรับค่ าจานวนสมาชิก Array
Work รับคะแนน
<arraywork2.java>
เขียนโปรแกรมรับคะแนนนักเรียนพร้ อมแสดงคะแนน
และเกรดของแต่ ละคน
Work รับค่ า GPA
<arraywork3.java>
เขียนโปรแกรมรับค่ าจานวนนศ. ทีไ่ ด้ GPA ตั้งแต่ 0-4
และนับจานวนคนทีไ่ ด้ แต่ ละ GPA
Work จัดเรียงข้ อมูล
<SortArray.java>
เขียนโปรแกรมจัดเรียงข้ อมูลทีร่ ับจากน้ อยไปมากแสดงดังนี้
Work นับจานวน
<PriceArray.java>
เขียนโปรแกรมนับจานวนราคาสิ นค้ าที่
ต่ากว่ า 500 และตั้งแต่ 500
Work รับราคาสิ นค้ า
<CountArray.java>
เขียนโปรแกรมรับราคาสิ นค้ าสิ้นสุ ดเมื่อป้อน 0 และนับจานวน
Two-dimension array
การประกาศตัวแปร array 2 มิติ
ชนิดข้ อมูล ตัวแปร[จานวนแถว][จานวนคอลัมน์ ];
เช่ น int data[2][3];
0,0
data
0,1
0,2
1,0
1,1
0
1,2
or
0
1
1
2
การแสดงค่ าตัวแปรใน Array
1. แสดงค่ าตัวแปรทีละสมาชิก
System.out.println
(ตัวแปรarray[index][index]);
2. แสดงค่ าตัวแปรสมาชิกทุกสมาชิก
for(x=ค่ าเริ่มต้ น;x<=ค่ าสิ้นสุ ด;x++)
for(y=ค่ าเริ่มต้ น;y<=ค่ าสิ้นสุ ด;y++)
System.out.println(ตัวแปรarray[x][y]);
การกาหนดค่ าตัวแปร Array
1. กาหนดค่ าคงทีใ่ ห้ กบั สมาชิก Array ทีละคน
ตัวแปรarray[index][index]= ค่ า;
เช่ น
mark[0][0]=50;
mark[0][1]=35;
การกาหนดค่ าตัวแปร Array
2. กาหนดค่ าคงทีใ่ ห้ กบั สมาชิก Array ทุกสมาชิก
for(x=เริ่มต้ น;x<=ค่ าสิ้นสุ ด;x++)
for(y=เริ่มต้ น;y<=ค่ าสิ้นสุ ด;y++)
ตัวแปรarray[x][y]= ค่ า;
เช่ น for(x=0;x<=4;x++)
for(y=0;y<=4;y++)
mark[x][y]=100;
กาหนดค่ าตัวแปร Array 2 มิติ เริ่มต้ น
ชนิดข้ อมูล ตัวแปร[][]={{ค่ าเริ่มต้ น}};
เช่ น
int x[][]={{40,10,20},{90,30,50}};
ตัวอย่ าง
ประกาศ Array 2 มิติ และแสดงข้ อมูลใน
Array ทั้งหมด และเลือกมิติทตี่ ้ องการไป
แสดงผล
<ตัวอย่ าง array2.java>
ตัวอย่ าง Array 2 มิติ
การรับและแสดงผลการรับ Array 2 มิติ
<ตัวอย่ าง array2test.java>
Work แสดงค่ า Index ของ Array
<TwoDArray.java>
เขียนโปรแกรมแสดงค่ า Index ของ
Array 2 มิติ ขนาด 3x4
Work รับค่ าอาร์ เรย์
<array2work.java>
เขียนโปรแกรมรับค่ าและหาผลรวม
Work รับค่ าคะแนน
<array2work2.java>
เขียนโปรแกรมรับค่ าคะแนนของนักเรียน 5 คน
ในแต่ ละรายวิชา 7 วิชา ใช้ Array 2 มิติ
การสร้ าง Method
Method คืออะไร ?
เป็ นการแบ่ งโปรแกรมออกเป็ นส่ วนย่ อย
แต่ ละ Method จะมีหน้ าทีเ่ ฉพาะใน
ตัวเอง
Method ต่ าง ของ Class Math
Math.abs(x) :absolute value
y
Math.pow(x,y) : x
Math.floor(x) : ตัดเศษทศนิยม
Math.round(x) : ปัดเศษทศนิยม
Math.max(x,y) : the greater of x and y
Math.min(x,y) : the smaller of x and y
ตัวอย่ างการใช้ Method
{
double r=10;
System.out.println(“Area = ”
+Math.PI*Math.pow(r,2));
}
<AreaCircle.java>
Work รับค่ ารัศมี
<TestCircle.java>
เขียนโปรแกรมรับค่ ารัศมี และหาขนาดพืน้ ที่วงกลม
จากสมการ ¶r² ซึ่ง ¶=3.14159
Math.PI 3.14159
องค์ ประกอบของ Method
•หัว Method
-บอกลักษณะการใช้ งานของ Method
-ระบุชื่อ ประเภทของข้ อมูลทีร่ ับ
และประเภทของผลลัพธ์ ทไี่ ด้
•ตัว Method
-ประกาศตัวแปรทีใ่ ช้ ภายใน
-บรรยายการทางานของ Method
-คืนการทางานสู่ ผ้ ูเรียก
ตัวอย่ าง
ประเภทข้ อมูชืล่อของผลลั
พ
ธ์
ท
ไ
่
ี
ด้
ตัวบอกลักษณะของMethod
method
รายการของ parameters
public static double length(double x, double y)
{
double len;
len=Math.sqrt(x*x+y*y);
return len;
}
คืนการทางานกลับสู่ ผู้เรียก
หัว Method : ประเภทข้ อมูลของผลลัพธ์
•ประเภทข้ อมูลพืน้ ฐาน (int,double,boolean,..)
•ประเภทข้ อมูลแบบคลาส (String,Point,…)
•ถ้ าเป็ น method ทีไ่ ม่ คนื ค่ าผลลัพธ์ ให้ ใส่ void
หัว Method : รายการของพารามิเตอร์
รายการของพารามิเตอร์
-Parameter เป็ นตัวแปรสาหรับรับข้ อมูลเข้ ามาประมวลผล
-แต่ ละ Parameter เขียนเหมือนการประกาศตัวแปร
(แต่ ไม่ ต้องปิ ดท้ ายด้ วย ;)
-แต่ ละ Parameter คัน่ ด้ วย comma
-รายการของ Parameter อยู่ภายในวงเล็บ
ตัว Method : Local Variable
•Local variable คือตัวแปรทีใ่ ช้ ภายใน Method
•ประกาศภายใน block ใด ใช้ ได้ เฉพาะใน block นั้น
•หรือ block ทีซ่ ้ อนอยู่ช้ันใน ของ block นั้น
•ประกาศทีจ่ ุดใด ใช้ ได้ หลังจุดนั้นภายใน block
•ถูกสร้ างใหม่ ทุกครั้งทีท่ างานถึงจุดทีป่ ระกาศ
การเรียกใช้ Method : การส่ งข้ อมูล
 จานวนข้ อมูลทีส
่ ่ งต้ องตรงกับทีป่ ระกาศไว้ ทหี่ ัว Method
 สิ่ งทีส
่ ่ งไปต้ องเป็ นประเภทที่ตัวแปรที่หัว
Method รับได้
เช่ น
public static float max(float x,float y)
{…}
X=max((float)(a/3.0) ,1f);
Y=max(Float.parseFloat(str),1.0f);
การเรียกใช้ Method : ผลที่คนื กลับ
 ในกรณีที่
Method มีการคืนค่ า ก็ต้องมีตัวแปร
ซึ่งมีประเภททีร่ ับค่ าของข้ อมูลทีค่ นื มาได้
เช่ น
public static float max(float x,float y)
{…}
double X=max(1.0f,(int)(x/3));
float Y=max(max(x,y),-10.5f);
ตัวอย่ าง <TestMax.java>
{
int max=maxMethod(5,2);
System.out.println("Maximum = "+max);
}
public static int maxMethod(int x, int y)
{
if(x>y) return x;
else return y;
}
Work รับค่ าข้ อมูล
<MaxMethod.java>
เขียนโปรแกรมรับข้ อมูล หาค่ าสู งสุ ดของตัวเลข
2 ตัว โดยใช้ หลักการแบบ Method
Work ค่ าตา่ สุ ด-ค่ าสู งสุ ด
<MethodWork.java>
เขียนโปรแกรมหาค่ าสู งสุ ดและตา่ สุ ดของตัวเลข 3 ตัว
โดยใช้ หลักการแบบ Method
Classes & Objects
Classes & Objects
•Classes คือ โครงสร้ างของ Object โดย
Class จะเป็ นตัวกาหนดว่ า Object นั้น
จะมี data อะไรบ้ างและมี Method อะไรบ้ าง
•Objects คือสิ่ งต่ าง ที่มีตัวตน และนาไปใช้ ในการ
ประมวลผลข้ อมูลได้
องค์ ประกอบของ Classes
class ClassName
{ data members
(ข้ อมูลต่ าง )
constructor methods
(method ทีเ่ กีย่ วกับการสร้ าง)
}
class & object methods
การสร้ าง Classes
รูปแบบ
class ClassName
{…
}
•ClassName
เป็ นชื่อไฟล์ ของข้ อมูลทีต่ ้ องการสร้ าง
การสร้ าง Objects
รูปแบบ
ClassName ObjectName=new ClassName();
เช่ น
Circle MyCircle=new Circle();
การเรียกใช้ Data
รูปแบบ
ObjectName.data
เช่ น
MyCircle.raius
การเรียกใช้ Method
รูปแบบ
ObjectName.method
เช่ น
MyCircle.findArea()
ตัวอย่ าง
การหาพืน้ ทีว่ งกลม
<ตัวอย่ าง TestCircle.java>
Work รับค่ าของรัศมี
<ClassWork.java>
เขียนโปรแกรมรับค่ ารัศมี และหาพืน้ ที่วงกลม
โดยใช้ หลักการแบบ Class
Java Swing
การสร้ าง GUI ด้ วย Swing
Component คือส่ วนประกอบ
หลักทีอ่ ยู่ใน JFC ซึ่งใช้ สาหรับสร้ าง GUI
 โดยชื่ อจะขึน
้ ต้ นด้ วย J และอยู่ใน
javax.swing package
 Swing
JFC(Java Foundation Classes)
การใช้ JOptionPane
ใช้ แสดงกรอบรับค่ า (Prompt) และ
แสดงข้ อความในกรอบ Dialog Box
ส่ วนประกอบ Dialog box
icon
message
input value
option buttons
ประเภท Dialog Box
showConfirmDialog แสดงกรอบคาถาม
showInputDialog แสดงกรอบรับค่ า
showMessageDialog แสดงกรอบข้ อความ
showOptionDialog แสดงกรอบทางเลือกอืน่
ประเภทสั ญลักษณ์ Message
· ERROR_MESSAGE
· INFORMATION_MESSAGE
· WARNING_MESSAGE
· QUESTION_MESSAGE
· PLAIN_MESSAGE ไม่ มีสัญลักษณ์
question information warning error
ประเภทป่ ุมกด (Option Type)
• DEFAULT_OPTION
• YES_NO_OPTION
• YES_NO_CANCEL_OPTION
• OK_CANCEL_OPTION
การแสดงข้ อความใน Dialog Box
แสดง package java
import javax.swing.JOptionPane;
แสดงข้ อความและตัวแปร
JOptionPane.showMessageDialog
(null,“ข้ อความ”หรือตัวแปร,“ชื่อหน้ าต่ าง”,
แสดงสั ญลักษณ์ );
<Message1.java>
การสร้ างกรอบรับค่ าใน Dialog Box
String name;
name=JOptionPane.showInputDialog
(“ข้ อความอธิบาย”);
<InputDL.java>
การแสดงข้ อความใน JTextArea
1. เรียกใช้ Packages
import javax.swing.JTextArea;
การแสดงข้ อความใน JTextArea
2. สร้ างพืน้ ที่ JTextArea
JTextArea ตัวแปร = new JTextArea();
หรือระบุขนาด Row,Column
JTextArea ตัวแปร = new JTextArea(row,column);
การแสดงข้ อความใน JTextArea
3. แสดงข้ อความเริ่มต้ น
ตัวแปร.setText( “ข้ อความ”);
4. แสดงข้ อความเพิม่ ต่ อ
ตัวแปร.append(“ข้ อความ”หรือตัวแปร );
<TextArea1.java>
การสร้ าง Scroll bar กับ Text Area
JScrollPane ตัวแปร = new
JScrollPane( ตัวแปรTextArea );
<Scrollbar1.java>