design for 1280x768
Group Blog
 
All blogs
 

basic java : Level5 SubProgram


ในคลาสๆหนึ่งสามารถมีได้หลายโปรแกรม โดยจะเริ่มทำงานจากโปรแกรมย่อยที่ชื่อว่า main()เป็นโปรแกรมแรก หากคลาสไม่มีโปรแกรมย่อย main() JVMจะไม่เริ่มrunให้ ที่ผ่านมานั้น เรารู้จักกันแต่คลาสที่มีโปรแกรมเพียงแค่main() โปรแกรมเดียว ต่อจากนี้เราจะมารู้จักคลาสที่มีหลายๆโปรแกรมกัน

ถ้าถามว่า "ทำไมต้องมีหลายๆโปรแกรมย่อยใน1คลาส หลายโปรแกรมก็หลายคลาสไปเลยได้หรือเปล่า" ... ก็ได้อะนะ แต่มันจะอยู่แยกกันคนละไฟล์ ถ้่าถามต่ออีกว่า "ไหนๆถ้าจะเอาไว้รวมกันแล้วรวมกันเป็นโปรแกรมใหญ่ๆโปรแกรมเดียวได้หรือเปล่า ไม่ต้องมาแยกเป็นโปรแกรมย่อยให้กระจักกระจายกัน" ... ก็ได้อะนะ แต่มันซับซ้อน ถามอีกว่า "มันเป็นโปรแกรมย่อยคนละโปรแกรมกันและจะทำงานร่วมกันได้หรือเปล่า" ... ได้สิ โปรแกรมหลักจะมีการเรียกฟังก์ชันจากโปรแกรมย่อยแล้วโปรแกรมย่อยก็จะทำการคำนวนและส่งค่ากลับ หรือไม่ก็โปรแกรมย่อยจะทำงานในตัวแทนโปรแกรมหลักเลย หรือไม่ก็แก้ไขค่าตัวแปรโกลเบิ้ลวาริเอเบิ้ลเพื่อให้มีผลไปถึงmain ถามอีกที "ฟังๆดูเหมือนมันจะซับซ้อนกว่าเดิมหรือเปล่า" ... ... ก็ ... ... ... ถามซ้ำ อ้อ อีกอย่าง ..."ถ้าหลายคลาสหลายโปรแกรมแล้วจะเอาโปรแกรมที่อยู่ในคลาสต่างคลาสกันมาทำงานร่วมกันได้หรือเปล่า" ... ก็ได้อะนะ ... สุดท้ายแระ "แล้วจะมีโปรแกรมย่อยไปเพื่อ?" ... (คิด15นาที) ... เปลี่ยนคำถามดีกว่า "ตั้งแต่เกิดมา แกเคยเขียนโปรแกรมคอมพิวเตอร์โดยใช้หลักการของซับโปรแกรมกี่ครั้งแล้ว" ... ... ... นับไม่ถูกหรอกโยม หลังจากที่ได้ทำความรู้จักกับซับโปรแกรมอย่างลึกซึ้งสนิทแน่นแฟ้นแล้วก็ไม่เคยมีครั้งไหนไม่ใช้ซับโปรแกรมทำงานเลย ... ... ...
(อยากทำความรู้จักกะซับโปรแกรมแล้วยัง)

เดี๋ยวมาต่ออีก นอนแป๊บ




 

Create Date : 18 สิงหาคม 2550    
Last Update : 18 สิงหาคม 2550 11:43:33 น.
Counter : 712 Pageviews.  

basic java : Level4 ControlStatement


Control Statement คือ การควบคุมคำสั่งการทำงานของโปรแกรม





ในแบบแรกนั้น จะเห็นว่าโปรแกรมจะมีการทำงานตั่งแต่คำสั่งแรกไปจนถึงคำสั่งสุดท้าย แต่ในแบบที่2นั้น จะมีการเลือกทำ การข้าม และการย้อนกลับ การทำให้โปรแกรมทำงานลักษณะนี้คือ "Control Statement" จะแบบออกเป็น2ประเภทใหญ่ๆคือ "ทางเลือก"และ"วนรอบ"
-ทางเลือก คือ ให้โปรคอมพิวเตอร์เลือกว่าจะ"ทำ"หรือ"ไม่ทำ"
-วนรอบ คือให้โปรคอมพิวเตอร์เลือกว่าจะ"ทำใหม่" หรือ "ไปต่อ"

ทางเลือก

ในภาษาjava มีคำสั่งที่นิยมใช้กัน2คำสั่งคือ "if else" และ "switch case"
if else จะเป็นคำสั่งที่ใช้ในทำนองที่ว่า "ถ้าอันนี้เป็นอย่างนี้แล้วทำอย่านั้นถ้าไม่ก็ทำอย่างนู้
เช่น
if (x < 0) x++; else x=0;
หมายความว่า ถ้าx<0 แล้ว ให้ทำx++ แต่ถ้า xไม่ได้<0แล้ว ก็ไปทำx=0ซะ
รูปแบบของ if else

if (ปัญหา) คำสั่ง1; else คำสั่ง2;
ปัญหา คือตัวที่จะใช้เป็นเงือนใขให้คอมพิวเตอร์เลือกทำงานอย่างไดอย่างหนึ่ง สามารถเป็นได้ทั้งตัวแปลชนิด boolean และ การดำเนินการที่ให้ผลออกมาเป็นboolean (true&false)
เช่น
boolean x=true,y=false;
if (x) System.out.println("x is true");
if ( x && y ) System.out.println("x and y is true");
else System.out.println("x or y is false");
int z=5;
if ( !(y || z=>0)) System.out.println("z<0");
หากคำสั่งที่ต้องการให้ทำภายใต้เงือนใขนั้นๆมีมากกว่า1คำสั่ง ให้ใช้{}ครอบ เพื่อให้เป็นชุดคำสั่งเดียวกัน
เช่น
if (ac=a;
a=b;
b=c;
}
เป็นต้น

switch case จะเป็นคำสั่งที่ใช้ในทำนองที่ว่า "ถ้าอันนี้ เป็นอย่างนี้ให้ทำอย่างนี้,เป็นอย่างนั้นให้ทำอย่านั้น,เป็นอย่างโน้นให้ทำอย่างโน้น,เป็นอย่างนู้นให้ทำอย่างนู้น ... ไม่เป็นอย่างไหนก็ให้ทำอย่างนี้"

เช่น
switch (a) {
case 1 : x = x+y;
break;
case 2 : x = x-y;
break;
case 3 : x = x*y;
break;
case 4 : x = x/y;
break;
default : x = 0;
}
ความหมาย ถ้าaเป็น1ให้ทำx=x+y ถ้าเป็น2ให้ทำx=x-y ถ้าเป็น3 ... ถ้าไม่เป็นอะไรในที่กำหนดมาก็ให้ทำ x=0
รูปแบบของ switch case
switch(ตัวแปรปัญหา)
case ค่าของตัวแปร : คำสั่ง1;break;
case ค่าของตัวแปร : คำสั่ง2;break;
.
.
.
default :คำสั่งสุดท้าย;

ตัวแปรปัญหาในที่นี้หมายถึงตัวแปรที่จะเอามาให้คอมพิวเตอร์นำไปตัดสินใจเลือกว่าจะไปทางไหน จะเป็นค่นintหรือchar
ส่วนค่าของตัวแปรเป็นช่องทางที่โปรแกรมจะเลือกทำ ส่วนคำสั่งที่อยู่หลัง:คือคำสั่งที่คอมพิวเตอร์จะทำเมื่อตัวแปรมีค่าเท่ากับค่าที่อยู่หน้า: แต่หากไม่ตรงกับค่าของตัวแปรตัวไหนเลยคอมพิวเตอร์ก็จะเลือกทำdefaultแทน


ความต่างของif และ switch
if จะเลือกทำอย่างใดอย่างหนึ่ง โดยอาศัยการตัดสินใจจากคำว่า trueและfalse ส่วนswitch จะเป็นการเลือกเอาจาก1ในหลายทาง โดยอาศัยการตัดสินใจจากค่าที่ตรงกันของตัวที่นำมาตัดสินใจและค่าของcase ส่วนความเหมือนอยู่ที่ ถ้าเลือกทำอันหนึ่งแล้วจะไม่ทำอันอื่นอีก(เว้นแต่ลืมbreakหรือจงใจไม่ใส่break)


วนรอบ
ในภาษาjava มีคำสั่งที่นิยมใช้กัน3คำสั่งคือ for while และdo while


การใช้งาน
for (ค่าตั้งต้น; เงื่อนไข; ปรับค่าตั้งต้น){
คำสั่ง
คำสั่ง
คำสั่ง
คำสั่ง
}
เช่น
for (int i=0; i<10; i++){
System.out.println(i);
}

while (เงื่อนไข){
คำสั่ง
คำสั่ง
คำสั่ง
คำสั่ง(ปรับค่าตั้งต้น)
}
เช่น
int i = 0;
while (i<10){
System.out.println(i);
i++;
}

do{
คำสั่ง
คำสั่ง
คำสั่ง
คำสั่ง(ปรับค่า)
while(เงื่อนไข);
เช่น
int i=0;
do{
System.out.println(i);
i++;
while(i<10);

ความต่างของทั้ง3คำสั่ง
for จะมีช่องสำหรับค่าตั้งต้น เงื่อนไข และตัวปรับค่าให้ในตัว เป็นคำสั่งที่ใช้ง่ายที่สุดในบรรดาคำสั่งสำหรับการวนรอบทำซ้ำ และเหมาะสำหรับการวนรอบที่รู้จุดเริ่มต้น จุดจบ และจำนวนของรอบ ที่วนรอบทำซ้ำเป็นอย่างดี เช่นการพิมพ์ค่า1-10อย่างที่ทำมา
while จะไม่มีช่องสำหรับค่าตั้งต้น และตัวปรับค่าให้เหมื่อนกับ for จะมีเพียงแต่เงื่อนไขเท่านั้น เหมาะสำหรับการวนรอบที่ใช้ค่าตั้งต้นที่เป็นoutputของคำสั่งอื่น(กำหนดค่าตั้งต้นเองไม่ได้) หรือไม่รู้จำนวนรอบที่แน่นอน (เช่น การเพิ่มขึ้นของค่าตั้งต้นไม่เป็นอนุกรม, ใช้ตัวตัดสินใจมากกว่า1 เป็นต้น) เช่น การอ่านfile ไม่ต้องมีค่าตั้งต้น อ่านไปทีละตัว อ่านไปเรื่อยๆจนกว่าจะหมด และไม่รู้ว่าหมดเมื่อไร
do while คล้ายกับwhile แต่do while จะทำก่อน1รอบ แล้วจึงพิจารณาเงื่อนไข ว่าจะให้ทำต่อหรือข้ามไปทำอย่างอื่น เหมาะสำหรับการวนรอบที่จำเป็นต้องคิดค่าตั้งต้นในรอบ คำสั่งนี้ถือเป็นคำสั่งที่ใช้ยากและอันตรายที่สุด ไม่จำเป็นอย่าได้ใช้มันดีกว่าผมไม่แนะนำให้ใช้และจะไม่ยกตัวอย่าง แต่หากคิดว่า ใช้มันน่าจะดีกว่า ก็ลองใช้ไปเลยก็ได้ เพราะจริงๆแล้วผมก็เคยใช้มันบ้างเหมือนกัน




 

Create Date : 14 สิงหาคม 2550    
Last Update : 1 ธันวาคม 2550 16:04:39 น.
Counter : 616 Pageviews.  

basic java : Level3 Array


อาเรย์คือประเภทโครงสร้างข้อมูลพื้นฐาน ที่เก็บข้อมูลชนิดเดียวกันหลายๆ ตัวเรียงต่อกัน
array สามารถนำไปประยุกต์ใช้กับข้อมูลประเภทอื่นๆ เพื่อให้เก็บค่าประเภทนั้นหลายๆค่าได้ เช่น char, int, float หรือ คลาส
array ในjavaเป็นคลาส เป็น Reference DT



วิธีการสร้างarrayในjava

DataType [] variable = new Datatype[length];
เช่น
int[] scores = new int[5];
char[] nickName = new char[8];

การใช้งาน array
ใช้ variable[index] แทนการใช้ตัวแปรธรรมดา1ตัว
เช่น
scores[0]=20;
scores[1]=50;
scores[2]=66;
scores[3]=scores[0];
int x=4;
scores[x]=scores[0]+scores[x-1];
int i=0
System.out.print(scores[i++]+" "+scores[i++]+" "+scores[i++]+" "+scores[4]+" "+scores[3]);
//lengthของscoresคือ5ช่อง แต่จะมีindexเป็น0-4 โดยช่อง0จะเป็นช่องแรก และช่อง4จะเป็นตัวสุดท้าย หากเกินนี้ก็errorครับ
/*การอ้างถึงlengthของarray scores ใช้คำสั่ง scores.length*/
//เช่น
System.out.print(scores.length);
//โปรแกรมจะพิมพ์5ออกมา

เป็นต้น
นอกจากนี้ยังมีการกำหนดค่าให้กับarrayพร้อมกับการเริ่มสร้างarrayได้อีกด้วย
เช่น
int[] arr1D ={1,2,3,4,5}
int[][] arr2D ={{1,2,3},{4,5,6},{7,8,9}}
//arr1D[0]>>>1
.
.
.
//arr1D[4]>>>5

//-----------
//arr2D[0][0]>>>1
//arr2D[0][1]>>>2
//arr2D[0][2]>>>3
//arr2D[1][0]>>>4
.
.
.
//arr2D[2][2]>>>9


การสร้างarrayมากกว่า1มิติ
DataType [][] variable= new double[D1.length][D2.length];
เช่น double [][] volume = new double [3][3];
//จะได้ array volume 2มิติ ขนาด3x3
int [][][] volume2= new int[5][4][3];
//จะได้ array volume 3มิติ ขนาด5x4x3
การกำหนดlengthของarrayให้ในแต่ละมิติย่อยมีขนาดไม่เท่ากัน
int test [][];
test=new int[3][];
test[0]=new int[3];
test[1]=new int[4];
test[2]=new int[2];
ภาพจำลอง




 

Create Date : 11 มิถุนายน 2550    
Last Update : 14 สิงหาคม 2550 0:48:21 น.
Counter : 853 Pageviews.  

basic java : Level2 VariableDeclaration


Basicjava : Level2 VariableDeclaration

ตัวแปรคือ:ตัวที่สามารถเปลี่ยนแปลงค่าได้ (เอาแบบเข้าใจง่ายๆเลยนะ)
ในทางคอมพิวเตอร์ เราจะเปรียบตัวแปรเป็นกล่องเก็บข้อมูล
เช่น


ในกล่องAจะเก็บข้อมูล2
ในกล่องBจะเก็บข้อมูล55.2
ในกล่องCจะเก็บข้อมูลtrue
ในกล่องDจะเก็บข้อมูล"Hello"
เป็นต้น

กลับมาดูตัวแปร

จะได้ว่า
A=2
B=55.2
C=True
D="Hello"

หากเปรียบเทียบความเหมือนกัน
การสร้างกล่อง คือการประกาศตัวแปร
ชื่อกล่องคือชื่อตัวแปร เช่นกล่องa ตัวแปรa
ข้อมูลที่เก็บในกล่องคือค่าของตัวแปร เช่น 2,55.2
ชนิดข้อมูลในกล่องคือ data type เช่น ตัวเลข,ตัวอักษร,ตรรกะ

Data Tyep

data type คือ ชนิดข้อมูลของตัวแปร มีดังนี้

ถึงจะมีอยู่หลายชนิด แต่ที่ใช้กันหลักๆมีอยู่4อย่างคือ int double Boolean และ Stringหรือchar
แต่หากจำเป็นต้องละเอียดถึงขนาดของโปรแกรมจึงจะเลือกใช้ตัวอื่นๆ
*หมายเหตุ* String คือ char ต่อๆกัน (Arrayของchar)

การประกาศตัวแปร

วิธีการประกาศตัวแปรหรือการสร้างตัวแปรสำหรับการเก็บข้อมูลในภาษาจาว่ามีรูปแบบดังนี้
datatype name; (name= variable)
เช่น
int A;
double B;
boolean C;
String D;

การกำหนดค่าให้กับตัวแปร

จะใช้เคื่องหมาย =แทนการกำหนดค่า โดยมีรูปแบบดังนี้
name = data;
เช่น
A=2;
B=55.2;
C=true;
D="Hello"
เป็นต้น


*** ในภาษาจาว่า
เราสามารถกำหนดค่าตัวแปรพร้อมกับการประกาศตัวแปรได้ทันที โดยมีรูปแบบดังนี้
datatype name=data;
เช่นint A=2;
และยังสามารถประกาศตัวแปรได้ที่ละหลายๆตัวพร้อมๆกันอีกด้วย โดยมีรูปแบบดังนี้
datatype var1,var2,var3,var4,...,varn;
เช่น
int x,y,z;
double w,l,h;
Srting DI,name,class;
เป็นต้น

และแน่นอนครับ เหมือที่ท่านคิด(หรือเปล่า?)
int x=2,y=5,z=18;
double w=4.2,l=12.0,h=10.4;
ได้อีกด้วย
**ในกรณีdatatype float หรือ long จะต้องมีตัวอักษร Fหรือ L ต่อท้ายเสมอ ตามลำดับ
เช่น
long x=2L;
float y=2.0F;
**ในกรณีdatatype String หรือ char ต้องใช้เครื่องหมาย" หรือ' ล้อมทั้งหน้าและหลังข้อมูลเสมอ ตามลำดับ
เช่น
char A='A';
String B="B";




หมดแระ การประกาศตัวแปร

ถ้าถามว่า ในการเขียนโปรแกรมคอมฯนั้น ตัวแปรสำคัญหรือเปล่า สำคัญมากมั้ย และสำคัญไฉน ?ก็กะจะตอบว่า
ไม่ว่าการรับ ส่ง หรือการคำนวณนั้น ต้องใช้ตัวแปรในการเก็บค่าทั้งสิ้น ดังนั้น ตัวแปรจึงเป็นเหมือนกระดาษทดในการคำนวณของเครื่องจักรไร้สมองอย่างคอมพิวเตอร์เช่น
int x,y,z
read x
read y
z=x*y
print z
เป็นต้น

ต่อไปจะเป็นการแนะนำเล็กๆน่อยๆเกี่ยวกับการประกาศตัวแปรไม่ให้เกิด error และ bug หรือให้เกิดน้อยที่สุด
1 คำสงวน คือคำที่ภาษาจาว่าสงวนไว้เป็นคำสั่งของภาษาคอมพิวเตอร์ ห้ามนำมาตั้งเป็นชื่อตัวแปล เช่น int class จะเกิด error ขึ้น เพราะมันจะมองว่าเป็น2คำสั่งต่อกันโดยไม่จบคำสั่งด้วย; และเป็นการเขียนไวยากรณ์คำสั่งที่ผิด มันจึงแจ้ง error
2 สือความ คือตั้งชื่อให้มันดูแล้วรู้เลยว่าตัวแปรตัวนี้มีไว้ทำอะไร ไม่ใช้ตั้งชื่อง่ายๆว่า a,b,c อะไรแบบนี้ (ตัวอย่างข้างต้นเป้นตัวอย่างที่ไม่ดี ดูไว้เป็นเยี่ยง แต่เอย่าเอาอย่างนะครับ) เพราะจะทำให้ฉับฉน หากต้องมีการใช้ตัวแปรหลายๆตัวในการทำงาน และต้องทำการสืบที่มาทำให้เสียเวลา และหากสืบที่มาผิดก็จบลงที่ bugล่ะครับ เช่นx,y,z ก็อาจจะเปลี่ยนเป็น multiplicand,multipiler,product จะเข้าใจได้ง่ายกว่า หรือว่าถ้ายาวไปจะหันมาใช้ตัวย่อก้ได้ แต่ที่สำคัญคือย่อแล้วให้ผู้อ่านเข้าใจและรู้เรื่องด้วย เพราะบางครั้ง 1โปรแกรมไม่ได้เขียนแค่เราเพียงคนเดียว แต่ถึงจะเขียนแค่คนเดียวแต่หากเกิดbugขึ้นมาแลัวจะแก้ไขยาก หากตัวแปรไม่สื่อความ
3 ไม่เว้นวรรคหรือใช้เครื่องหมายไดๆ อันนี้ไม่ขอพูดมากแล้วกัน แต่หากต้องการตั้งชื่อตัวแปรที่เป็นคำตั้งแต่2คำขึ้นไป ให้ใช้ตัวอักษรแรกของคำใหม่เป็นตัวใหญ่ เพื่อให้รู้ว่าขึ้นคำใหม่แล้ว หรือใช้_คั่นคำก็ได้ เช่น dataType หรือ data_type (เครื่องหมาย$ ก็ใช้ได้) แต่ในการเขียนโปรแกรมภาษาjavaจะนิยมเขียนชื่อตัวแปรแบบ dataType มากกว่า ส่วนdata_typeเป็นการเขียนแบบของc++ แต่จะเอามาเขียนในjavaก็ได้ ไม่ผิด แต่ไม่ค่อยนิยมใช้เท่านั้นเอง ส่วน $ ไม่เคยเห็นใครใช้ แค่บอกว่านัมใช้ได้เท่านั้นเอง
4 ไม่ประกาศตัวแปรให้มีชื่อซ้ำกัน จริงอยู่ในภาษาจาว่ามีการประกาศตัวแปรให้มีชื่อซ้ำกันได้ แต่มีเงื่อนไขกำหนด หากทำผิดเงื่อนไขก็แน่นอน error และยังเสี่ยงต่อการสับสน ซื่งอาจจะมีbugตามมา แต่หากเห็นว่าการตั้งชื่อซ้ำมีประโยชน์กว่าและทำตามเงื่อนไขได้ล่ะก็ จะตั้งชื่อซ้ำก็ได้นะครับ(จริงๆแล้วตัวผมเองแรกๆก็ไม่ค่อยจะตั้งซ้ำ แต่พอเริ่มเซียน+ความขี้เกียจคิดชื่อใหม่ก็เอาชื่อเดิมนั้นแล่ะ มาประกาศตัวแปลตัวใหม่ (เงื่อนใขในการประกาศตัวแปรซ้ำกันจะกล่าวถึงในบทต่อ ต่อ ต่อ ต่อ ไป นะครับ)
5 อันนี้พิเศษนิด
เลขฐาน10 เขียนตามปรกติ เช่น 1234
เลขฐาน8 เขียนขึ้นต้นด้วยเลข0 เช่น 01234
เลขฐาน16 เขียนขึ้นต้นด้วยเลข0x เช่น 0xA5DF
real number (float,double) เขียนแบบนี้ได้ด้วย
0.01536 เป็น 1.536e-2 (หมายถึง*10^-2)
boolean มี2ค่า คือtrue และ false และไม่ใช่ Stringหรือchar เพราะฉนั้น อย่ามี "true" หรือ 'false' มาให้เห็น มิเช่นนั้น . . .
6ข้อควนระวัง การเปลี่ยนdata type
เช่น
int x;
double y;
x=50;
y=20;
x=y;<<<เดี้ยง
y=x;

เนื่องจากint มีค่าความจุน้อยกว่า double การนำค่าจากdoubleไปใส่int จึงทำไม่ได้ แต่ว่า intไปใส่ในdoubleนั้น ทำได้

ok : No error : problem
ok* : No error : Possible Loss of Precision
pl : Error : Possible Loss of Precision
x : Error : Incompatible Type

ไว้ฉุกเฉิน
วิธีการทำ plเป็นok*
เอาอย่างนี้เลยนะ
int x;
double y=10;
x=(int)y;



เกี่ยวกับการประกาศตัวแปรก็ไม่มีอะไรแล้ว หรือไม่ก็มีแต่นึกไม่ออก - -a
เพิ่มเติมเกี่ยวกับการดำเนินการนิดหน่อยนะครับ

เครื่องหมาย =
เป็นเครื่องหมายที่ใช้ทำให้ค่าตัวแปลทางซ้ายมือมีค่าเท่ากับทางขวามือ
เช่น
x = 5; // ในตอนนี้ x มีค่าเป็น5
x = 4; // ในตอนนี้ x มีค่าเป็น4
x = x + x; ในตอนนี้ x มีค่าเป็น8
ข้อควรระวัง เครืองหมาย = เป็นแค่การทำให้ทางซ้ายมีค่าเท่ากับทางขวาเท่านั้น อย่าไปยึดติดกับกฏคณิตศาสตร์ที่ว่า 2ข้างของสมการต้องเท่ากัน เพราะมันไม่ใช้สมการ เป็นแค่คำสั่งเท่านั้น

เครื่องหมายดำเนินการทางคณิตศาสตร์
+ บวก
- ลบ
* คูณ
/ หาร เอาส่วน(จำนวนเต็ม)
% หารเอาเศษ
เช่น
x = 3 + 2 // xมีค่าเป็น5
x = 5 - 1 // xมีค่าเป็น4
x = x * 2 // xมีค่าเป็น 8
x = x / 3 // xมีค่าเป็น 2
x = 10 % 3 // xมีค่าเป็น 1
แต่ในกรณีที่ datatype เป็น double หรือ fload (พวกมีจุดทั้งหลาย) เครื่องหมายหาร(/) จะทำเหมือนการหารธรรมดา
เครื่องหมายดำเนินการทางคณิตศาสตร์ (เพื่อความง่าย)
x++ หมายถึง x = x + 1
x-- หมายถึง x = x - 1
x += y หมายถึง x = x + y
x -= y หมายถึง x= x - y
x *= y หมายถึง x= x * y
x /= y หมายถึง x= x / y
ไม่มี x** หรือ x// นะ
เครื่องหมายดำเนินการทางตรรกศาสตร์
x == y หมายถึง xเท่ากับy
x < y หมายถึง xน้อยกว่าy
x<=y หมายถึง xน้อยกว่าหรือเท่ากับy
x > y หมายถึง xมากกว่าy
x>=y หมายถึง xมากกว่าหรือเท่ากับy
!x หมายถึง ไม่x (นิเสกx)
x !=y หมายถึง xไม่เท่ากับy
x%%y หมายถึง xและy
x||y หมายถึง xหรือy
!(x%%Y) หมายถึง ไม่ xและy
ยกกำลัง กรณฑ์ ฯลฯ ไม่มี



ความเดิมตอนที่แล้ว HelloWorld
ผมกล่าวไว้แค่เฉพาะการเขียน(output)เท่านั้นไม่ได้มีเรื่องการอ่าน(inout)เลย
คราวนี้เรามาดูโปรแกรมที่มีทั้งoutและinกันเถอะ
01-improt java.util.Scanner;
02-class InOut{
03-     public static void main(String args[]){
04-          Scanner reader=new Scanner(System.in);
05-          String word=reader.nextLine();
06-          System.out.print(word);
07-     }
08-}
อธิบายโปรแกรม** หากมันยุงยากมากมายไป ข้ามไปดูสรุปโปรแกรมได้เลยครับ
01-ทำให้fileนี้ ใช้งานclass Scannerซื่งถูกเก็บไว้ในutilได้
02-สร้างclass
03-โปแกรมmain
04-constructor Scanner
เอา งง งง งง งง
เรื่องconstructor เอาไว้ก่อนแล้วกันนะครับ กว่าจะถึงคงยังอีกไกล มาดูใกล้ๆกันก่อนดีกว่า
เนื่องจากจาว่าไม่มีคำสั่งอ่านค่าหรือเขียนค่า จึงต้องใช้fileอื่นในการทำหน้าที่นี้ ในการเขียนจะใช้ Scanner
Scanner reader=new Scanner(System.in);
หากลองดูทีละส่วนแล้ว Scanner reader; จะเหมือนกับการประการตัวแปร reader โดยมีdata type เป็น Scanner
reader=... ... ...;ก็หมายถึงกำหนดค่าว่าreader มีค่าเท่ากับอะไร ในที่นี้คือ reader มีค่าเป็นclass สุดท้าย new Scanner(System.in) เป็นการทำให้ class Scanner ใช้งานได้ และรับข้อมูลเป็นSystem.in
รวมๆแล้วก็คือทำให้ ตัวแปร reader มีค่าเป็น class Scanner นั่นเอง
คราวนี้ เราก็จะใช้ reader เป็น ตัวแปรในการทำงานการอ่านค่า
05-กำหนดค่า word=reader.nextLine();
reader.nextLine();คือคำสั่งที่ใช้ในการรับค่าจากทางคีย์บอด เมื่อรับมาแล้ว ก็นำมาเก็มไว้ใน ตัวแปร word นั่นเอง
06-เหมือนเดิม พิมพ์ค่า word
07-}
08-}
จบ

สรุปการรับค่าจากทางแป้นพิมพ์
01-ทำให้ใช้ Scannerได้
04-ใช้งานประกาศตัวแปร reader ให้มีค่าเป็น class Scanner
05-ใช้คำสั่งรับค่าจาก reader.nextLine()

**ไม่ว่าต้องการรับค่าเมื่อไร ให้ใช้reader.nextLine()(หรือตัวแปรตัวไหนก็ได้ ที่ประกาศไว้เป็น Scanner) เป็นตัวรับค่าจากทางเป้นพิมพ์**
nextมีโปรแกรมรับข้อมูลสำหรับdata tyepแต่ละแบบ จะเอามาปนกันไม่ได้ ดังนี้

Scanner read=new Scanner(System.in);
String a=read.next()หรือnextLine();
char b=read.next().charAt(0);
byte c=read.nextByte();
short d=read.nextShort();
int e=read.nextInt();
long f=read.nextLong();
float g=read.nextFloat();
double h=read.nextDouble();
boolean i=read.nextBoolean();

**เนื่องจากไม่มีโปรแกรมรับค่าchar(หรืออาจจะมี แต่ผมไม่รู้) จึงต้องใช้วิธีลักไก่เป็นเอาString ตัวแรกมาแทน ไม่ว่ากันน้า


ว่างๆลองเอาโปรแกรมนี้ไปรันเล่นดูนะครับ//www.bloggang.com/data/suar-hine/picture/1180202095.jpg
วิธีการเอาไฟล์นี้ไปมี2วิที
1copy urlนี้ไปโหลดด้วยโปรแกรมช่วยโหลด และsaveในชื่อ InOut.java (เท่านั้น) (firefox แนะนำอันนี้)
2copy ตัวอักษรนี้ทั้งหมดแล้วไป paste ลงใน notepad (Start>All Program>Accessories>Notepad) จากนั้นsaveชื่อไฟล์ว่า InOut และ ใช้นามสกุลไฟล์เป็น .java เท่านั้น
*จะใช้ชื่อไฟล์ว่าอะไรก็ได้ และให้compileตามชื่อไฟล์ที่ตั้งไว้ แต่ต้องเป็น .java เท่านั้น และrun ด้วยคำสั่ง java InOut เท่านั้น




 

Create Date : 27 พฤษภาคม 2550    
Last Update : 1 ธันวาคม 2550 14:52:44 น.
Counter : 3315 Pageviews.  

Basic java : Level1 HelloWorld


class ClassName {
public static void main(String[] args){
System.out.println("Hello World!");
}
}

ไม่รู้เป็นอะไรเหมือนกัน ไม่ว่าใครจะสอนการเขียนโปรแกรมอะไรก็ตาม มักจะเป็ดตัวด้วย Hello World เสมอ และผมก็ด้วย

java programming สามารถเขียนได้โดยใช้Notepadธรรมดาๆเขียน และเมื่อเขียนเสร็จก็ save file โดยใช้ชื่อ นามสกุล.java
บรรทัดที่1 class ClassName {
เป็นการระบุชื่อไฟล์ class
ควรตั้งชื่อโดยไม่เว้นวรรค หากเป็นคำติดกันควรใช้ตัวอักษรตัวใหญ่ขึ้นนำคำ เพื่อให้รู้ว่าเป็นคำใหม่แทนการเว้นวรรค
บรรทัดที่2 public static void main(String[] args)
เป็นบรรทัดแรก ที่ Interpreterของ JVM จะเลือกรัน
บรรทัดที่3 System.out.println(); เป็นคำสั่งพิมพ์ค่า และค่าในที่นี้คือ "Hello World"













 

Create Date : 06 พฤษภาคม 2550    
Last Update : 19 พฤศจิกายน 2550 13:04:06 น.
Counter : 604 Pageviews.  

1  2  

เสือไฮ่
Location :


[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 1 คน [?]




Programmer in the Dark






เคยมีผู้ใช้mouseจิ้มเข้ามา000ครั้ง
และมีผู้ที่ยังหาทางออกไม่ได้คน
และ ... คุณคือหนึ่งในนั้น

Friends' blogs
[Add เสือไฮ่'s blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.