String
เหมือนกับเป็นแค่ค่าตัวอักษรธรรมดานั้น
แต่มีลูกเล่นมากมายที่เกี่ยวกับ String ไม่ใช่แค่
System.out.print() เท่านั้นที่เป็นการใช้ String
การกำหนดให้ String เป็นตัวแปร
ประกาศง่ายๆโดย
String ชื่อตัวแปร = "ข้อความที่ต้องการ"
เช่น
String a = "Hello"
วิธีนำตัวแปรมาใช้ก็ใช้ System.out.print(ตัวแปร); ถ้าตามดังเงื่อนไขข้างบน
จะได้ว่า
System.out.print(a);
Result
Hello
ข้อดีของการใช้ตัวแปรคือ ถ้ามีจำนวนข้อมูลเยอะๆที่ซ้ำๆกัน มันจะอ้างอิงที่แหล่งเก็บข้อมูลแค่ตัวเดียว
จึงมีผลทำให้ข้อมูลมีความรวดเร็วมากขึ้นในการใช้งาน
การหาความยาวของ String นั้นๆ
ทำได้โดยต่อด้วย .length() เข้าไปท้ายข้อความหรือตัวแปร
เช่น
"hello".length();
หรือ
a.length();
ส่วนใหญ่จะใช้อยู่ในรูป System.out.print();
จะได้ค่าออกมาคือ 5
การหาตัวอักษรโดยใช้ตำแหน่ง
หลักการจะคล้ายๆกับ Array คือ 0 คือตัว แรก และ n-1 คือตัวสุดท้าย
ซึ่งใช้คำสั่ง .charAt(n-1) โดย n คือลำดับของตัวอักษรที่ต้องการรู้
เช่น
"hello".charAt(1);
จะได้ว่า ตัวที่สองของ hello คือ e
การหาตำแหน่งของตัวอักษรโดยใช้ตัวอักษร
โดยการหาตำแหน่งของตัวอักษรนี้ จะแสดงตำแหน่งที่ n-1 เหมือน.charAt(n)
แต่จะแสดงแค่ตัวที่อยู่หน้าสุด้ท่านั้น
โดยใช้คำสั่ง .indexOf('a') โดย a คือตัวอักษร
เช่น
"hello".indexOf('l');
จะแสดงเลข 2 ขึ้น คือ l ตัวแรกอยู่ตำแหน่งที่ 3 นั่นเอง
แต่หากหาไม่พบ โปรแกรมจะแสดงเลข -1 ออกมาแทน
เช่น
"hello".indexOf('L');
Result
-1
เพราะฉะนั้น หากไม่ต้องการให้เริ่มที่ตัวแรก ให้กำหนดตำแหน่งที่ต้องการเริ่มหาโดย
.indexOf('a',n-1)
เฃ่น
"hello".indexOf('l',3);
ผลลัพธ์ที่ออกมาจะได้เท่ากับ 3
หากไม่ต้องการหาจากหน้าไปหลัง
ยังมีวิธีที่สามารถหาจากหลังไปหน้าโดย
lastIndexOf('a') หรือ lastIndexOf('a',n-1)
เช่น
"hello".lastIndexOf('l');
จะได้ค่าเท่ากับ 3
ส่วนการตำแหน่งของกลุ่มข้อความ สามารถใช้ indexOf('abc') หรือ lastIndexOf('abc')
ได้เหมือนกัน
เช่น
"hello ell".indexOf('el');
Result
1
"hello ell".lastIndexOf('el');
Result
7
(การหานี้จะนับจากตัวแรกที่ใช่)
การเชื่อมต่อ String
โดยส่วนมากเราจำรู้เมื่ออยู่ในเครื่องหมาย + เช่น
a + b เป็นต้น
เมื่อแสดงออกมาจะได้ข้อความ a และ b
เช่น
String a = "hello";
String b = "ell";
System.out.println(a + b);
จะได้ว่า helloell เป็นต้น
และสามารถนำมาบวกกันแล้วค่อยแสดงก็ได้
เช่น
a = a + b;
System.out.println(a);
จะได้ helloell เหมือนกัน
และสามารถ + เข้าไปตรงๆ อีกได้เหมือนกัน
เช่น
a += b;
System.out.println(a);
Result
helloellเช่นกัน
*จากที่ผลออกมา จะสังเกตุได้ว่าค่า a ตอนเริ่มจะหายไปเป็นค่าตัวใหม่แทน
เพราะฉะนั้นถ้าต้องการคงค่าตัวแปรเดิม ควรใช้หลายตัวแปร
แต่ก็มีวิธีที่ทำให้ตัวแปรไม่หายไปโดยการใช้ .concat(x)
เช่น
System.out.println(a.concat(b));
จะได้ helloell เหมือนกัน โดนสามารถใช้ตัวแปร a ตัวเดิมได้ด้วย
หรือไม่ก็กำหนดตัวแปรใหม่โดยใช้ concat เหมือนกัน
เช่น
String d = a.concat(b);
System.out.println(d);
จะได้ข้อความ helloell เหมือนกันและได้ d เป็นตัวแปรเพิ่มขึ้นอีกตัวด้วย
การแสดงกลุ่มคำโดยใช้ตำแหน่ง
โดยกำหนดตัวเริ่มต้นแล้วใช้ฟังก์ชัน x.substring(n-1)เข้าช่วย
โดยการแสดงผล จะแสดงในรูปแบบ String ที่เป็นกลุ่มข้อความ
เช่น
String a = "Hello you. How are you to day?";
System.out.println(a.substring(11));
จะแสดง How are you today? ออกมา (ตำแหน่งที่ 12 ตรงกับ H พอดี)
แต่ถ้าต้องการกำหนดจุดสุดท้ายด้วย กำสามารถใส่,i ต่อท้ายได้โดย
i ต้องมีค่ามากกว่า n ตามสูตร x.substring(n,i)
เช่น
System.out.println(a.substring(11,22));
จะแสดง How are you ออกมา (ตำแหน่งที่ 23 คือตัวว่างเปล่า มันจะไม่แสดงจุดสุดท้ายออกมา)
การปรับแต่ง string
โดยการใช้คำสั่ง .replace('a','b') โดยตัวที่อยู่หน้า .replace สามารถเป็น
ตัวแปร หรือ ตัวอักษรก็ได้ ส่วน a คือตัวที่เลือกที่จะแทน และ b คือตัวที่ต้องการจะแทนลงไป
เช่น
"world".replace('o','i');
จะได้คำว่า wirld ออกมา เป็นต้น
*การใช้ replace นี้เป็นการเปลี่ยนทุกตัวที่สั่ง เช่นคำว่า hello
ถ้าต้องการเปลี่ยนตัว l เป็นตัว e จะได้คำว่า heeeo เป็นต้น
และการใช้คำสั่ง replace นี้สามารถเปี่ลยนแบบกลุ่มคำได้อีกด้วย
แต่ต้องแทนเครื่องหมาย '' เป็น ""
เช่น
"hello how are you? are you okay?".replace("you" , "we");
จะได้ hello how are we? are we okay? ออกมา
ส่วนการใช้ .replaceAll("","") เป็นการเน้นการเปลี่ยนกลุ่มคำโดยเฉพาะ ซึ่ง
ความสามารถที่แตกต่างจาก replace ธรรมดาคือไม่สามารถเปลี่ยนข้อมูล String
เป็น Char ได้
เช่น
"hello how are you? are you okay?".replaceAll("you" , "we");
จะได้ hello how are we? are we okay? ออกมา
*ข้อสังเกตุ ค่าของตัวแปรตัวที่ใช้ replace หรือ replaceAll ตัวแรกจะไม่เปลี่ยนแปลงถ้าไม่กำหนดค่าของตัวแปรนั้นๆใหม่
การตัดส่วนที่เกิดจำเป็นออก (trim)
เป็นการแปลง string ที่มีช่องว่างระหว่าง 1 ตัวขึ้นไปออกโดยวิธีการใช้
คือ a.trim()
เช่น
" hi ".trim()
จะได้ผลลัพท์คือ " hi " ออกมา
การเปลี่ยนตัวอักษรตัวพิมพ์ใหญ่ เล็ก
การเปลี่ยนตัวพิมพ์ใช้คำสั่ง .toLowerCase() (ได้ตัวพิมพ์เล็กทั้งหมด)
หรือ .toUpperCase (ได้ตัวพิมพ์ใหญ่ทั้งหมด)
เช่น
String a = "Hello how are You?";
System.out.println("a before change case : " + a);
String b = a.toLowerCase();
System.out.println("b : " + b);
String c = a.toUpperCase();
System.out.println("c : "+ c);
Result
a before change case : Hello how are You?
b : hello how are you?
c : HELLO HOW ARE YOU?
เป็นต้น
การเปรียบเทียบของ string
โดยการใช้คำสั่ง equals โดย ถ้ามีตัวใหญ่ต้องใหญ่เหมือนกัน และถ้าเล็กก็เล็กเหมือนกัน
โดยผลที่แสดงออกมาจะเป็น True กับ False
เช่น
String a = "Hello" ;
String b = a ;
String c = "hello" ;
a.equals(a) ;
a.equals(b) ;
a.equals(c) ;
จะได้ว่า a, b แสดงค่าเป็น true แต่ c แสดงค่าเป็น false เนื่องจาก H กับ h มีค่าต่างกัน
ในอีกทางหนึ่ง หากไม่ต้องการสนใจตัวอักษรใหญ่หรือเล็กนั้น
คำสั่ง equalsIgnoreCase เป็นตัวช่วย
เช่น
String a = "Hello" ;
String b = a ;
String c = "hello" ;
a.equalsIgnoreCase(a) ;
a.equalsIgnoreCase(b) ;
a.equalsIgnoreCase(c) ;
จะได้ว่า a,b และ c มีค่าเป็น true ทั้งหมด
การใช้คำสั่ง == ในการเปรียบเทียบนั้นค่าจะเท่ากันต่อเมื่อ
1. มีค่าเท่ากัน
2. ตัวแปรเดียวกันเท่านั้น
ซึ่งไม่เหมือนกับ equals ซึ่งเอาตัวแปรเท่าใหม่เท่ากับตัวแปรตัวเก่าได้
เช่น
String a = "Hello";
System.out.println("a == \"Hello\" is : " + (a == "Hello"));
String b = a;
System.out.println("b == a is : " + (b==a));
String c = new String(a);
System.out.println("c == a is : " + (c==a));
result
a == "Hello" is : true
b == a is : true
c == a is : false
ซึ่งสังเกตุได้ว่า ค่าตัวแปรใหม่ (c) จะมีค่าไม่เท่ากับตัวแปรเก่า (a) ในภาษาจาว่า
หลักการเปรียบเทียบด้วย compareTo นั้น การเปรียบเทียบจะเหมือนกับการเปรียบเทียบของ
equals ทุกประการ ต่างกันที่ผลที่แสดงออกมา โดย caompareTo จะแสดงค่าออกมาคือ -1, 0 , 1
โดยมากกว่าจะได้ 1 น้อยกว่าจะได้ -1 และเท่ากันได้ 0
ในขณะที่ equals แสดงค่าเป็น true , false
เช่น
String a = "Hello";
System.out.println("a.compareTo(\"Hello\") is : " + a.compareTo("Hello"));
String b = "Hello";
System.out.println("b.compareTo(a) is : " + b.compareTo(a));
String c = new String(a);
System.out.println("c.compareTo(a) is : " + c.compareTo(a));
String d = "a1" , e = "a2" ;
System.out.println("d.compareTo(e) is : " + d.compareTo(e));
System.out.println("e.compareTo(d) is : " + e.compareTo(d));
result
a.compareTo("Hello") is : 0
b.compareTo(a) is : 0
c.compareTo(a) is : 0
d.compareTo(e) is : -1
e.compareTo(d) is : 1
สามารถติดตามผลงานเพิ่มเติมได้ที่นี่
http://www.megaupload.com/?d=RF4JL4Y0
วันจันทร์ที่ 17 กันยายน พ.ศ. 2550
วันพฤหัสบดีที่ 23 สิงหาคม พ.ศ. 2550
สรุปการเรียนรู้กับ Java 7
Array 1 มิติ
การประกาศใช้ Array มี 3 ส่วนในการประกาศใช้ตัวแปร
โดยส่วนแรกคือ การประกาศชนิดของข้อมูล โดยวิธีการประกาศคือ
ชนิดของข้อมูล ตัวแปร [];
เช่น
int x[];
เป็นการประกาศตัวแปรที่เป็นจำนวนเต็มตามขั้นตอน
ส่วนที่ 2 คือการประกำหนดขอบเขคของ Array โดย
ตัวแปร = new ชนิดของข้อมูล [n];
n = จำนวนของความกว้างของ Array
เช่น
x = new int [5];
จะได้ว่า Array ที่มีตัวแปร 5 ตัวแปร
ส่วนสุดท้ายคือการกำหนดค่าตัวแปร โดย
ตัวแปร [n] = ค่าของเลข;
โดยที่ค่าของตัวแปรจะเริ่มจาก 0
เช่น
x [0] = 1;
x [1] = 2;
x [2] = 3;
.
.
.
x [4] = 5;
จะได้ตัวแปร x [0] = 1; x [1] = 2; x[2] = 3; x [3] = 4; x [4] = 5;
Array 2 มิติ
การทำ Array แบบ 2 มิตินั้น จะคล้ายๆกับ แบบ 1 มิติ แค่เพิ่มความซ้อนมิติอีกชั้นโดย
style="color:#ff0000;">ชนิดของข้อมูล ตัวแปร [][]; เป็นการประกาศตัวแปร
ตัวแปร = new ชนิดของข้อมูล [n][m]; เป็นการกำหนดความกว้างของ Array
ตัวแปร [n][m] = ค่าของเลข; เป็นการใส่ค่าให้ตัวแปร
Loop
คือการทำงานคำสั่งซ้ำๆของข้อมูลสูตรที่ไปของมันคือ
for( i = n; i < m; i ++){
คำสั่งที่อยากให้ทำ;
}
n = จุดเริ่มต้นของข้อมูล
m = จุดสุดท้ายของข้อมูล
i ++ คือการเพิ่มลำดับข้อมูลทีละ 1
i -- คือการลดลำดับข้อมูลทีละ 1
สามารถชมผลงานได้ที่นี่
http://www.megaupload.com/?d=AD4RHOB9
การประกาศใช้ Array มี 3 ส่วนในการประกาศใช้ตัวแปร
โดยส่วนแรกคือ การประกาศชนิดของข้อมูล โดยวิธีการประกาศคือ
ชนิดของข้อมูล ตัวแปร [];
เช่น
int x[];
เป็นการประกาศตัวแปรที่เป็นจำนวนเต็มตามขั้นตอน
ส่วนที่ 2 คือการประกำหนดขอบเขคของ Array โดย
ตัวแปร = new ชนิดของข้อมูล [n];
n = จำนวนของความกว้างของ Array
เช่น
x = new int [5];
จะได้ว่า Array ที่มีตัวแปร 5 ตัวแปร
ส่วนสุดท้ายคือการกำหนดค่าตัวแปร โดย
ตัวแปร [n] = ค่าของเลข;
โดยที่ค่าของตัวแปรจะเริ่มจาก 0
เช่น
x [0] = 1;
x [1] = 2;
x [2] = 3;
.
.
.
x [4] = 5;
จะได้ตัวแปร x [0] = 1; x [1] = 2; x[2] = 3; x [3] = 4; x [4] = 5;
Array 2 มิติ
การทำ Array แบบ 2 มิตินั้น จะคล้ายๆกับ แบบ 1 มิติ แค่เพิ่มความซ้อนมิติอีกชั้นโดย
style="color:#ff0000;">ชนิดของข้อมูล ตัวแปร [][]; เป็นการประกาศตัวแปร
ตัวแปร = new ชนิดของข้อมูล [n][m]; เป็นการกำหนดความกว้างของ Array
ตัวแปร [n][m] = ค่าของเลข; เป็นการใส่ค่าให้ตัวแปร
Loop
คือการทำงานคำสั่งซ้ำๆของข้อมูลสูตรที่ไปของมันคือ
for( i = n; i < m; i ++){
คำสั่งที่อยากให้ทำ;
}
n = จุดเริ่มต้นของข้อมูล
m = จุดสุดท้ายของข้อมูล
i ++ คือการเพิ่มลำดับข้อมูลทีละ 1
i -- คือการลดลำดับข้อมูลทีละ 1
สามารถชมผลงานได้ที่นี่
http://www.megaupload.com/?d=AD4RHOB9
วันอังคารที่ 31 กรกฎาคม พ.ศ. 2550
สรุปการเรียนรู้กับ Java 6
จากการเรียนของครั้งที่แล้วนั้น
การใช้ if กับ else เปล่าๆนั้น สามารถกำหนดเงื่อนไข
ได้แค่ใช่กับไม่เท่านั้น หรือพูดง่ายๆคือโปรแกรมจะทำเงื่อนไขได้แค่ 2 แบบเท่านั้น
แต่ถ้าเราต้องการเงื่อนไขที่ละเอียดมากขึ้น เราสามารถใช้ else if แทน else ธรรมดา
ซึ่งสามารถใช้ else if กี่ครั้งก็ได้ซึ่งตรงกันข้ามกับ else ธรรมดา
เช่น
if(x==120)
{ System.out.println("x = " + x);
System.out.println("Condition = true");
}
else if(x<120){
System.out.println("Your number is lower than that number!!!");
System.out.println("Please try again.");
}
else if(x>120){
System.out.println("Your number is higher than that number!!!");
System.out.println("Please try again.");
}
ซึ่งเป็นตัวอย่างหนึ่งของการบอกเงื่อนไขที่ละเอียดโดย
ถ้าตัวเลขนั้นมากกว่า 120 โปรแกรมจะทำงานว่า
Your number is higher than that number!!!
Please try again.
แต่ถ้าน้อยกว่าจำทำงาน
Your number is lower than that number!!!
Please try again.
แทน
โดยสรุปแล้ว การใช้ else if มีการเขียนชุดคำสั่งดังนี้
if(a){
ชุดคำสั่ง1;
}
else if(b){
ชุดคำสั่ง2;
}
else if(c){
ชุดคำสั่ง3;
}
.
.
.
ในอีกทางหนึ่ง หากโปรแกรมที่เป็นตัวเลขมากๆแล้ว
การใช้ if, else หรือ else if จะทำให้ข้อมูลการเขียนนั้นยาวมาก
จนอาจทำให้โปรแกรมทำงานมากจนเกินความจำเป็นก็ได้
เช่นการคิดคะแนนเกรด หรือการวัดรายได้ของประชากรเป็นต้น
ซึ่งตัวเลขนั้นมีมากมาย
เราจึงต้องใช้ switch - case ซึ่งโปรแกรมที่ทำงานคล้ายกับ if else
แต่สามารถทำงานได้หลากหลายกว่าและง่ายกว่า โดย
สามารถใช้กับข้อมูลที่เป็นจำนวนเต็มก็ได้ หรือเป็นอักขระก็ได้โดย
จะแบ่งเป็นกรณีๆ
เช่น
switch(x/10)
{
case 0:;
case 1:;
case 2:;
case 3:;
case 4:System.out.println("You're failed!!");break;
case 5:System.out.println("You're grade is D.");break;
case 6:System.out.println("You're grade is C.");break;
case 7:System.out.println("You're grade is B.");break;
case 8:;
case 9:;
case 10:System.out.println("You're grade is A. Congratulations!!");break;
}
ในกรณีนี้เป็นการใส่คะแนนเพื่อหาเกรด โดย
ถ้าคะแนนอยู่ในระดับ 80-100 จะได้เกรด A
ถ้าคะแนนอยู่ในระดับ 70-79 จะได้เกรด B
ถ้าคะแนนอยู่ในระดับ 69-60 จะได้เกรด C
ถ้าคะแนนอยู่ในระดับ 59-50 จะได้เกรด D
และน้อยกว่านั้นคือตก
*ข้อสังเกตุ 1 จากเงื่อนไข switch จะเห็นได้ว่าถ้าเป็นตัวเลขจำนวนเต็มที่หารด้วย 10 แล้ว
จะเหลือเศษอยู่ในบางกรณี ซึ่งโปรแกรมจะปัดเศษลงอัตโนมัติ เพื่อให้โปรแกรมทำงาน
2. ต้องมี break ตามท้ายด้วย เนื่องจากหากไม่มี โปรแกรมจะทำเงื่อนไขอื่นๆด้วย
เช่น หาก ได้คะแนน 62 โปรแกรมจะบอกว่า คุณได้เกรด A, B และ C ซึ่งมันตรงข้ามกับความเป็นจริง
สามารถดูตัวอย่างเพิ่มได้ที่นี่
http://www.megaupload.com/?d=SIBSR691
การใช้ if กับ else เปล่าๆนั้น สามารถกำหนดเงื่อนไข
ได้แค่ใช่กับไม่เท่านั้น หรือพูดง่ายๆคือโปรแกรมจะทำเงื่อนไขได้แค่ 2 แบบเท่านั้น
แต่ถ้าเราต้องการเงื่อนไขที่ละเอียดมากขึ้น เราสามารถใช้ else if แทน else ธรรมดา
ซึ่งสามารถใช้ else if กี่ครั้งก็ได้ซึ่งตรงกันข้ามกับ else ธรรมดา
เช่น
if(x==120)
{ System.out.println("x = " + x);
System.out.println("Condition = true");
}
else if(x<120){
System.out.println("Your number is lower than that number!!!");
System.out.println("Please try again.");
}
else if(x>120){
System.out.println("Your number is higher than that number!!!");
System.out.println("Please try again.");
}
ซึ่งเป็นตัวอย่างหนึ่งของการบอกเงื่อนไขที่ละเอียดโดย
ถ้าตัวเลขนั้นมากกว่า 120 โปรแกรมจะทำงานว่า
Your number is higher than that number!!!
Please try again.
แต่ถ้าน้อยกว่าจำทำงาน
Your number is lower than that number!!!
Please try again.
แทน
โดยสรุปแล้ว การใช้ else if มีการเขียนชุดคำสั่งดังนี้
if(a){
ชุดคำสั่ง1;
}
else if(b){
ชุดคำสั่ง2;
}
else if(c){
ชุดคำสั่ง3;
}
.
.
.
ในอีกทางหนึ่ง หากโปรแกรมที่เป็นตัวเลขมากๆแล้ว
การใช้ if, else หรือ else if จะทำให้ข้อมูลการเขียนนั้นยาวมาก
จนอาจทำให้โปรแกรมทำงานมากจนเกินความจำเป็นก็ได้
เช่นการคิดคะแนนเกรด หรือการวัดรายได้ของประชากรเป็นต้น
ซึ่งตัวเลขนั้นมีมากมาย
เราจึงต้องใช้ switch - case ซึ่งโปรแกรมที่ทำงานคล้ายกับ if else
แต่สามารถทำงานได้หลากหลายกว่าและง่ายกว่า โดย
สามารถใช้กับข้อมูลที่เป็นจำนวนเต็มก็ได้ หรือเป็นอักขระก็ได้โดย
จะแบ่งเป็นกรณีๆ
เช่น
switch(x/10)
{
case 0:;
case 1:;
case 2:;
case 3:;
case 4:System.out.println("You're failed!!");break;
case 5:System.out.println("You're grade is D.");break;
case 6:System.out.println("You're grade is C.");break;
case 7:System.out.println("You're grade is B.");break;
case 8:;
case 9:;
case 10:System.out.println("You're grade is A. Congratulations!!");break;
}
ในกรณีนี้เป็นการใส่คะแนนเพื่อหาเกรด โดย
ถ้าคะแนนอยู่ในระดับ 80-100 จะได้เกรด A
ถ้าคะแนนอยู่ในระดับ 70-79 จะได้เกรด B
ถ้าคะแนนอยู่ในระดับ 69-60 จะได้เกรด C
ถ้าคะแนนอยู่ในระดับ 59-50 จะได้เกรด D
และน้อยกว่านั้นคือตก
*ข้อสังเกตุ 1 จากเงื่อนไข switch จะเห็นได้ว่าถ้าเป็นตัวเลขจำนวนเต็มที่หารด้วย 10 แล้ว
จะเหลือเศษอยู่ในบางกรณี ซึ่งโปรแกรมจะปัดเศษลงอัตโนมัติ เพื่อให้โปรแกรมทำงาน
2. ต้องมี break ตามท้ายด้วย เนื่องจากหากไม่มี โปรแกรมจะทำเงื่อนไขอื่นๆด้วย
เช่น หาก ได้คะแนน 62 โปรแกรมจะบอกว่า คุณได้เกรด A, B และ C ซึ่งมันตรงข้ามกับความเป็นจริง
สามารถดูตัวอย่างเพิ่มได้ที่นี่
http://www.megaupload.com/?d=SIBSR691
วันศุกร์ที่ 27 กรกฎาคม พ.ศ. 2550
วันพฤหัสบดีที่ 19 กรกฎาคม พ.ศ. 2550
สรุปการเรียนรู้กับ Java 5
ประโยคเงื่อนไข
ในความเป็นจริงทั่วไปแล้ว
คะแนนของคณะบัญชีสูงมากๆ (สมมุติว่า 80 ) เป็นเหตุผลหนึ่งที่ทำให้เราไม่เลือกอาชีนี้ก็ได้
เช่นเดียวกัน
if (a)
ก็หมายความว่าถ้าข้อมูล a เป็นจริง จาขึ้นคำว่า ซา-หวาด-ดี เป็นต้น
if (a) {
System.out.println("x");
โปรแกรมก็จะ Run คำสั่ง x y และ z
if (a) {
เมื่อเรา Run โปรแกรมด้วยคำสั่ง a แล้ว โปรแกรมจำพิมพ์ x y z ขึ้น
พิเศษ
นอกเหนือจากที่ผมได้เรียนมาแล้วนั้น จากม.5 ผมได้จำคำสั่ง else if ของ Delphi 6 ได้
เช่น
import java.util.*;
ก็เป็นโปรแกรมคิดเกรดทั่วไปที่ใช้ตามโรงเรียนต่างๆ
รูปภาพการแสดงผล

คนนี้ได้เกรด 2.5 (67.25)
ในความเป็นจริงทั่วไปแล้ว
เมื่อมีสิ่งเร้าอะไรสักอย่าง จึงทำให้เราต้องเลือกเดินไปทางใดทางหนึ่งเช่น
คะแนนของคณะบัญชีสูงมากๆ (สมมุติว่า 80 ) เป็นเหตุผลหนึ่งที่ทำให้เราไม่เลือกอาชีนี้ก็ได้
ในตรงกันข้ามถ้าคณะเศรษฐศาสตร์คะแนนแค่ 50 ก็มีหลายต่อหลายคนเลือกอาชีพนี้พอสมควรเลย
เครื่องหมายในภาษา Java
เครื่องหมายที่ใช้กับประโยคเงื่อนไขใน Java ทั้งหมด มี
< น้อยกว่า
> มากกว่า
== เท่ากับ
<= น้อยกว่าหรือเท่ากับ
>= มากกว่าหรือเท่ากับ
!= ไม่เท่ากับ
เครื่องหมายที่ใช้กับประโยคเงื่อนไขใน Java ทั้งหมด มี
< น้อยกว่า
> มากกว่า
== เท่ากับ
<= น้อยกว่าหรือเท่ากับ
>= มากกว่าหรือเท่ากับ
!= ไม่เท่ากับ
เช่นเดียวกัน
กับภาษาคอมพิวเตอร์ก็มีคำสั่งในการตัดสินใจเหมือนมนุษย์โดย
คำสั่งของคอมพิวเตอร์นั้นจะใช้คำสั่ง if แล้วตามด้วยข้อมูล
เช่น
if (a)
System.out.print("ซา-หวาด-ดี");
ก็หมายความว่าถ้าข้อมูล a เป็นจริง จาขึ้นคำว่า ซา-หวาด-ดี เป็นต้น
เมื่อเราอยากให้โปรแกรม Run ได้หลายคำสั่ง ให้เราใส่วงเล็บปีกกาหลังสิ้นสุดคำสั่ง if อีกที
เช่น
if (a) {
System.out.println("x");
System.out.println("y");
System.out.println("z");
}
โปรแกรมก็จะ Run คำสั่ง x y และ z
ในทางตรงข้าม เมื่อมันไม่ใช่คำสั่ง a โปรแกรมจะไม่ Run อะไรเลย
ยกเว้นว่าเราจะเพิ่มคำสั่ง else ไปอีกตัว จะทำให้เพิ่มคำสั่งที่ไม่เป็นจริงขึ้นมาอีกตัว
เช่น
เช่น
if (a) {
System.out.println("x");
System.out.println("y");
System.out.println("z");
}
System.out.println("y");
System.out.println("z");
}
else
System.out.println("Error code in system win33");
เมื่อเป็นอย่างนี้แล้ว
เมื่อเรา Run โปรแกรมด้วยคำสั่ง a แล้ว โปรแกรมจำพิมพ์ x y z ขึ้น
แต่ถ้าไม่ใช่คำสั่ง a เครื่องแสดง Error code in system win33 ขึ้นมาทันที
พิเศษ
นอกเหนือจากที่ผมได้เรียนมาแล้วนั้น จากม.5 ผมได้จำคำสั่ง else if ของ Delphi 6 ได้
ซึ่งในโปรแกรม Java นั้น สามารถใช้ได้เช่นกัน โดย else if จะทำหน้าที่คล้าย else มาก
ก็คือ สามารถแจกแจงความที่ได้มากกว่า else ธรรมดาโดย
สามารถใช้กับการคิดเกรดได้ หรือทายตัวเลขโดยบอกคำใบ้ด้วย
เช่น
import java.util.*;
public class Spec{
public static void main (String[]args){
public static void main (String[]args){
Scanner a = new Scanner(System.in);
float x;
System.out.print("Please enter your score. ");
x = a.nextFloat();
if(x>100){
System.out.println("Error by enter out of limited score (maximum is 100).);
}
else if(x>=80){
System.out.println("Your score is" + x);
System.out.println("Your grade is 4");
}
else if(x>=75){
System.out.println("Your score is" + x);
System.out.println("Your grade is 3.5");
System.out.println("Your grade is 3.5");
}
else if(x>=70){
System.out.println("Your score is" + x);
System.out.println("Your grade is 3");
System.out.println("Your grade is 3");
}
else if(x>=65){
System.out.println("Your score is" + x);
System.out.println("Your score is" + x);
System.out.println("Your grade is 2.5");
}
}
else if(x>=60){
System.out.println("Your score is" + x);
System.out.println("Your score is" + x);
System.out.println("Your grade is 2");
}
}
else if(x>=55){
System.out.println("Your score is" + x);
System.out.println("Your score is" + x);
System.out.println("Your grade is 1.5");
}
}
else if(x>=50){
System.out.println("Your score is" + x);
System.out.println("Your score is" + x);
System.out.println("Your grade is 1");
}
}
else{
System.out.println("Your score is" + x);
System.out.println("Your score is" + x);
System.out.println("You have failed this subject!");
}
}
System.out.println("Thankyou for investigating!");
}
}
}
ก็เป็นโปรแกรมคิดเกรดทั่วไปที่ใช้ตามโรงเรียนต่างๆ
รูปภาพการแสดงผล
คนนี้ได้เกรด 4 (80)
คนนี้ได้เกรด 2.5 (67.25)
คนนี้สอบตก (30)
สามารถติดตามผลงานได้ที่นี่
วันเสาร์ที่ 7 กรกฎาคม พ.ศ. 2550
สรุปการเรียนรู้เกี่ยวกับ Java 4
การกรอกข้อมูลโดยตรง
ถึงแม้ว่าเราจะสามารถสร้างโปรแกรมที่สามารถใช้งานได้ดีเพียงได้
แต่ถ้าผู้ใช้ไม่รู้วิธีใช้ มันก็แทบจะไม่มีความหมายอยู่ดี
สัปดาห์นี้ผมจึงได้เรียนเกี่ยวกับการให้ข้อมูลผ่านคีย์บอร์ดขณะ Run โปรแกรมได้
ซึ่งก่อนอื่นเราก็ต้องอาศัยฟังชันนึงในการอ้างอิงก่อนเสมอ
และต้องใส่บันทัดแรกสุดเสมอคือ
Import java .util.*;
ซึ่งตัวนี้จะอ้างอิงที่อยู่ของฟังก์ชั่น Scanner นั้นเอง
และการใช้ตัว Scanner ก็เป็นการประกาษใช้ตัวแปรอย่างหนึ่ง
ซึ่งตัวแปรนี้จะเป็นตัวแปรรับข้อมูลจากคีย์บอร์ด
โดยเราต้องกำหนดตัวอักษรตัวหนึ่งเพื่อนให้มันเป็นตัวแปรให้เรา
เช่น เมื่อเราอยากให้ x เป็นตัวแปรก็ให้เขียนดังนี้
Scanner x = new Scanner(System.in);
เท่านี้ x ก็เป็นตัวแปรของเรา ซึ่งตัวแปร 1 ตัวแปรสามารถใช้ได้หลายสมการมาก
และในการกำหนดตัวแปรให้ใช้กับเลขทศนิยมได้นั้น
ก็สามารถทำได้ง่ายๆโดยเอาข้อมูลทศนิยมขึ้นแล้วตามด้วยตัวแปรที่อยากให้มันเป็น
เช่น เราอยากให้ a เป็นตัวแปรเลขทศนิยม ก็ทำได้โดย
float a;
เราก็สามารถเอาตัว a ไปแทนลงในสมการต่างๆเพื่อให้ผู้ใช้สามารถ
ใส่เลขด้วยตัวเองได้
และในการให้ผู้ใช้กรอกข้อมูลนั้น เราก็ต้องใส่ฟังก์ชั่นอีกฟังก์ชั่นนึงคือ
a = x.nextFloat();
เพื่อเป็นการบอกเปิดการรับข้อมูลจากคีย์บอร์ดเมื่อ Run โปรแกรมแล้ว
แล้วชนิดข้อมูลที่สามารถ Run ต่อได้และไม่ Error นั้นต้องเป็นค่าทศนิยมเท่านั้น
และนี่คือสมการตัวอย่าง
เมื่อกรอกข้อมูลไปแล้วจะได้ผลลัพท์ดังรูป
สามารถดูงานเพิ่มเติมได้ที่นี่
http://www.megaupload.com/?d=ILGKJVHP
วันพฤหัสบดีที่ 28 มิถุนายน พ.ศ. 2550
สรุปการเรียนรู้กับ Java 3
วันนี้ อาจารย์ได้อธิบายถึงเรื่องชนิดของข้อมูล
ซึ่งมีหลากหลายขนาดมาก ตั้งแต่เล็กมาก ถึง ใหญ่มาก
ซึ่งมีมากมายเช่น
ข้อมูลที่เป็นจำนวนเต็มซึ่งเรียงจากข้อมูลที่เล็กสุดไปใหญ่สุด
เช่น
Byte, Short, Integer, Long
ซึ่งการใช้งานของตัวแปรคือ ถ้าตัวแปรมีขนาดเท่ากันทำอะไรกัน
จะไม่มีการเปลี่ยนชนิดข้อมูลชนิดนั้น
เช่น
1/2 = 0
เนื่องจากทั้ง 1 และ 2 คือจำนวนเต็ม เพราะฉะนั้นถ้าเอาไป / 0
ก็ต้องเป็นข้อมูลชนิดเดิมคือ จำนวนเต็ม
แต่ถ้าข้อมูล 2 ชนิดมีขนาดที่แตกต่างกันทำอะไรกัน
โปรแกรมจะแปลขนาดข้อมูลที่เล็กกว่าไปสู่ขนาดที่ใหญ่กว่าเสมอ
เช่น
1.0/2 = 0.5
จะไม่เหมือนตัวอย่างแรกเนื่องจาก ตัวอย่างแรกเป็นจำนวนเต็มทั้งหมด
แต่ ตัวอย่างนี้มีการแปลงข้อมูลซึ่งทำให้หาข้อมูลได้กว้างขึ้น
ในความเป็นจริงแล้ว เราไม่สามารถกำหนดเขตของข้อมูลให้กว้างที่สุดเสมอไป
เนื่องจากจะทำให้เราสับสนแล้ว ยังทำให้คอมพิวเตอร์ประมวลผลช้าลงอีกด้วย
เป็นการทำให้คอมพิวเตอร์ทำงานหนักโดยใช่เหตุ
การกำหนดตัวแปร
การประกาษตัวแปรนั้น เป็นการใช้ประโยชน์กับเมื่อมีจำนวนข้อมูลเยอะๆ
แล้วเอามาประมวลผลร่วมกัน ในทางอ้อม เหมือนเป็น
การป้องกันให้ผู้ใช้สับสนทางหนึ่ง
ซึ่งการประกาศตัวแปรของโปรแกรม java นี้
เป็นการประกาศใช้ Paramitter โดยใช้ array
โดยการประกาศตัวแปรหลักๆคือ
System.out.println(args[n])
โดย n คือจำนวนเต็ม (เริ่มจาก 0)
ซึ่งหลังการใช้ตัวแปรทั่วไปจะอยู่ในรูปของ String เสมอ
ถ้าอยากให้ตัวแปรนี้เปลี่ยนเป็นข้อมูลอื่นๆ
ให้ใส่ชนิดของข้อมูลนั้นๆ หน้าตัวแปรที่ประกาศ
เช่น
เมื่ออยากให้ตัวแปรเป็นจำนวนเต็ม
Integer.parseInt(args[n])
เป็นต้น
เมื่ออยากให้จำนวนเต็มที่เป็นตัวแปรบวกกันก็สามารถทำได้โดย
(Integer.parseInt(args[n]) + Integer.parseInt(args[n]))
แต่เวลาใช้ตัวแปรนั้น เราไม่สามารถ run ได้ด้วยโปรแกรม jcreator LE
ต้องใช้โปรแกรม Command Prompt ในการ run
เนื่องจากเราไม่สามารถกำหนดค่าของตัวแปรลงได้ในโปรแกรม
ในทางตรงกันข้าม ในCommand Prompt สามารถกำหนดได้
จากที่เห็นจากภาพคือโปรแกรมสามารถ Compile ได้ตามปกติ
แต่เมื่อ Run แล้วจะ Error เนื่องจากไม่มีค่าของตัวแปร
การใส่ค่าของตัวแปรใน Command Prompt
ทำได้ไม่ยากโดย Run ชื่อไฟล์แล้วตามด้วยตัวแปรนั้นๆ แต่ต้องเว้นวรรค
เพื่อแบ่งตัวแปร
ตัวอย่างเช่น
java Project "Hello" "Zebra" "Etc." 12321
ซึ่งเมื่อใช้ตัวแปรที่เป็นเลขแล้ว เมื่อข้อมูลมีเยอะกว่าตัวแปร
โปรแกรมจะใช้เฉพาะข้อมูลชั้นที่มีตัวแปรอยู่เท่านั้น
เช่นถ้าเราประกาษแค่ตัวแปรเดียว แต่เรา Run โปรเจกโดย
java Project 11 21 23 42
โปรแกรมจะแสดงข้อมูลเฉพาะ 11 เท่านั้น
เมื่อ Run ใน Command Prompt โดยใส่ตัวแปรดังรูปจะได้ผลลัพธ์ออกมา
สามารถดาวน์โหลดผลงานได้ที่นี่
สมัครสมาชิก:
บทความ (Atom)