ค่าคงที่
ค่าคงที่ (Constant) เป็นตัวแปรประเภทหนึ่งที่ไม่สามารถเปลี่ยนแปลงค่าได้ในขณะที่โปรแกรมทำงาน นั่นหมายความว่าเราจะต้องกำหนดค่าให้ตัวแปรในเวลาที่คอมไพเลอร์ทำงาน หรือในตอนแรกที่เราสร้างตัวแปรค่าคงที่ขึ้นมา ค่าคงที่ที่เราใช้กันบ่อยๆ นั้นเรียกว่า Literal ซึ่ง Literal สามารถแบ่งแยกได้เป็น Integer, Floating-point, Characters, Strings, Boolean, Pointers และค่าคงที่ที่ผู้ใช้สร้างขึ้นเอง
Typed constant
ในการประกาศค่าคงที่ในภาษา C++ นั้นเหมือนกันกับการประกาศตัวแปร แต่สำหรับการประกาศค่าคงที่นั้นจะมีคำสั่ง
const
เพิ่มเข้ามาข้างหน้า นี่เป็นรูปแบบของการประกาศค่าคงที่ในภาษา C++const data_type identifier = value;
เราสามารถประกาศค่าคงที่โดยการตั้งชื่อและกำหนดค่าให้กับมันในตอนที่เราประกาศตัวค่าคงที่เสมอ หลังจากนั้นเราสามารถเรียกใช้ตัวแปรค่าคงที่โดยใช้ชื่อของมันได้ในโปรแกรม ชนิดของตัวแปรประเภทค่าคงที่นั้นเหมือนกับตัวแปรปกติ ซึ่งจะมี Integer, Floating-point, Characters, Strings, Boolean, Pointers มาดูตัวอย่าง
const int LENGTH= 100;
const double PI = 3.1415926;
const char N = 'a';
ในตัวอย่าง เราได้ทำการประกาศค่าคงที่สามตัว ค่าคงที่แรกชื่อว่า
LENGTH
ซึ่งเป็นค่าคงแบบ int
และค่าคงที่ที่สองชื่อว่า PI
ซึ่งเป็นค่าคงแบบ float
และค่าคงที่สุดท้าย N
ซึ่งเป็นค่าคงที่แบบ char การตั้งชื่อให้กับค่าคงที่นั้นนิยมใช้ตัวพิมพ์ใหญ่ทั้งหมดและคั่นด้วยเครื่องหมาย Underscore (_) หากเป็นชื่อที่ยาว ต่อไปเป็นตัวอย่างการใช้งานค่าคงที่ในการเขียนโปรแกรมในภาษา C++#include <iostream>
using namespace std;
int main()
{
const float PI = 3.14f;
int r1 = 3;
int r2 = 5;
int r3 = 10;
cout << "Area of circle 1 is " << (PI * r1 * r1) << endl;
cout << "Area of circle 2 is " << (PI * r2 * r2) << endl;
cout << "Area of circle 3 is " << (PI * r3 * r3) << endl;
cout << "Circumstance of circle 1 is " << (2 * PI * r1) << endl;
cout << "Circumstance of circle 2 is " << (2 * PI * r2) << endl;
cout << "Circumstance of circle 3 is " << (2 * PI * r3) << endl;
return 0;
}
ในตัวอย่าง เป็นโปรแกรมในการหาพื้นที่และเส้นรอบวงของวงกลม เรามีค่าคงที่
PI
ซึ่งเก็บค่าคงที่ทางคณิตศาสตร์ที่เป็นสัดส่วนระหว่างเส้นรอบวงและเส้นผ่านศูนย์กลางของวงกลม และเรามีตัวแปร r1
r2
และ r3
ที่เก็บรัศมีของวงกลมสามวงตามลำดับ
ในตัวอย่างคุณจะเห็นประโยชน์ของการใช้งานค่าคงที่คือ เป็นการทำให้ตัวแปรนั้นมีความหมายมากขึ้น คุณสามารถอ้างถึงค่า
3.14f
โดยการใช้ PI
แทน ซึ่งจะช่วยลดความผิดพลาดในการเขียนโปรแกรมและทำให้โปรแกรมของคุณเข้าใจง่ายมากขึ้น ซึ่งโดยทั่วไปแล้วค่าคงที่นั้นจะนิยมตั้งชื่อโดยใช้ตัวใหญ่ทั้งหมด ทำให้มันสังเกตุได้ง่ายจากตัวแปรปกติ
อ่านต่อคลิก:http://marcuscode.com/lang/cpp/constants
ความแตกต่างระหว่างตัวแปรและค่าคงที่ได้แก่ ตัวแปรสามารถเปลี่ยนค่าไปมาในส่วนใดของโค้ดก็ได้ ในขณะที่ค่าคงที่หากถูกกำหนดค่าไว้แล้วจะไม่สามารถกำหนดค่าใหม่ได้ ค่าคงที่มีประโยชน์ในการเขียนโปรแกรมอย่างมาก ตัวอย่างเช่นการกำหนดค่าคงที่แทนค่าของ Pi ซึ่งมีค่าโดยประมาณ 3.14159 คงไม่สะดวกแน่หากต้องพิมพ์ค่าตัวเลขนี้ลงไปทุกครั้งที่มีการอ้างถึง ดังนั้นใน C และ C++ จึงได้นำเสนอการประกาศค่าคงที่ขึ้นมาใช้งาน โดยผู้ใช้งานต้องทำการนิยามและประกาศชื่อของตัวแทนค่าเหล่านั้น
การนิยามค่าคงที่
ในการนิยามค่าคงที่จะใช้ตัวกระทำการล่วงหน้า (pre-processor directive) ซึ่งได้แก่ “define” เพื่อใช้ในการนิยามค่าคงที่โดยมีลักษณะรูปแบบการใช้งานดังนี้
#define identifier value
ดังตัวอย่างต่อไปนี้
1
2
3
| #define PI 3.14 #define A 5 |
ความแตกต่างระหว่างตัวแปรและค่าคงที่ได้แก่ ตัวแปรสามารถเปลี่ยนค่าไปมาในส่วนใดของโค้ดก็ได้ ในขณะที่ค่าคงที่หากถูกกำหนดค่าไว้แล้วจะไม่สามารถกำหนดค่าใหม่ได้ ค่าคงที่มีประโยชน์ในการเขียนโปรแกรมอย่างมาก ตัวอย่างเช่นการกำหนดค่าคงที่แทนค่าของ Pi ซึ่งมีค่าโดยประมาณ 3.14159 คงไม่สะดวกแน่หากต้องพิมพ์ค่าตัวเลขนี้ลงไปทุกครั้งที่มีการอ้างถึง ดังนั้นใน C และ C++ จึงได้นำเสนอการประกาศค่าคงที่ขึ้นมาใช้งาน โดยผู้ใช้งานต้องทำการนิยามและประกาศชื่อของตัวแทนค่าเหล่านั้น
การนิยามค่าคงที่
ในการนิยามค่าคงที่จะใช้ตัวกระทำการล่วงหน้า (pre-processor directive) ซึ่งได้แก่ “define” เพื่อใช้ในการนิยามค่าคงที่โดยมีลักษณะรูปแบบการใช้งานดังนี้
#define identifier value
ดังตัวอย่างต่อไปนี้
1
2
3
| #define PI 3.14 #define A 5 |
Escape codes
Escape codes ใช้สำหรับแสดงอักขระที่อยากในการเขียนลงบนโค้ดของโปรแกรมเมอร์ตัวอย่าง เช่น tab จะแทนด้วย (\t) ซึ่ง Escape codes ทั้งหมดจะเริ่มต้นด้วยตัว backslash (\) ดังตารางต่อไปนี้
ตารางที่ 1. Escape Codes
Escape codes | รายละเอียด |
\n | new line ขึ้นบรรทัดใหม่ |
\r; | carriage return ตัวบอกจุดสิ้นสุดของบรรทัด |
\t | tab |
\v | vertical tab |
\b | backspace |
\f | page feed |
\a | alert (ส่งเสียง beep ออกมาทางลำโพงของเมนบอร์ด) |
\' | single quote |
\" | double quote |
\? | question mark |
\ | backslash |
สามารถใช้งาน Escape codes ได้ดังนี้
1
2
3
| "devxcon" "devxcot website" |
นอกจากนี้ Escape codes ยังสามารถนำมาใช้แสดงค่าตัวเลขฐานแปด หรือ ฐานสิบหก ได้หากเป็นเลขฐานแปดจะใช้เครื่องหมาย backslash ตามด้วยตัวเลข เช่น 1234 หากเป็นฐานสิบหกจะใช้ backslash ตามด้วยตัวอักษร x และตัวเลข ตัวอย่างเช่น xF12A ดังตัวอย่างต่อไปนี้
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #include<iostream> using namespace std; #define PI 3.14159 #define NEW_LINE '\n' void main () { cout << "Pi value is " << PI << NEW_LINE; cout << "Goodbye!" ; cin.get(); } |
#define directive ไม่ใช่คำสั่งของ C++ แต่เป็นตัวกำหนดการทำงานของคอมไพเลอร์ก่อนจะทำการคอมไพล์โค้ดทั้งหมด จึงเรียกว่า directive หรือตัวกำหนดทิศทางการทำงานของคอมไพเลอร์ เป็นเสมือนการกำหนดค่าเริ่มต้นให้กับคอมไพเลอร์ก่อนจะทำการคอมไพล์นั่นเอง ดังนั้นจึงไม่ตำเป็นต้องใส่เครื่องหมาย “;” อยู่ด้านหลังการกำหนดค่านี้
หากใส่ “;” คอมไพเลอร์จะถือว่า “;” เป็นส่วนหนึ่งของการกำหนดค่าด้วยตัวอย่าง เช่น
1
| #define PI 3.14; |
หากนำไปใช้งานไว้ส่วนสุดท้ายของคำสั่งจะไม่เกิดข้อผิดพลาดใด ๆ
1
| int a = PI; |
เนื่องจากคอมไพเลอร์จะแปรเป็น
1
| int a = 3.14;; |
แต่หากวางไว้ในส่วนอื่นจะทำให้เกิดความผิดพลาดในการคอมไพล์ได้ เช่น
1
| int a = PI +5; |
ผลลัพธ์ที่ได้จากคอมไพเลอร์จะเป็น
1
| int a = 3.14; +5; |
ซึ่งเห็นได้ชัดว่าผิดวยากรณ์ของ C++ ทำให้ไม่สามารถคอมไพล์ต่อไปได้
const
const เป็นคำที่วางไว้ด้านหน้าชนิดตัวแปรในขณะที่ทำการประกาศตัวแปรตัวอย่าง เช่น
1
2
3
4
5
| const int x = 50; const char newline = '\n' ; const y = 50; |
หากไม่มีการนิยามประเภทตัวแปรไว้คอมไพเลอร์จะกำนหดให้เป็นเลขจำนวนเต็ม (int)
String
string คือประเภทตัวแปรที่เพิ่มเช้ามาใน C++ ซึ่งใช้ในการเก็บตัวอักษรได้มากกว่าหนึ่งตัว ก่อนการใช้งาน string ต้องทำการเรียกใช้ Standard Template Library (STL) ของ C++ ก่อนดังตัวอย่างต่อไปนี้
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include<iostream> #include<string> //add for std::string using namespace std; int main() { string mystring = "This is a string" ; cout << mystring; return 0; } |
ประเภทตัวแปร string ใน C++ สามารถใช้งานตัวกระทำการพื้นฐานเช่นเดียวกับที่ใช้ในตัวแปรได้ และยังสามารถประกาศตัวแปรชนิดนี้โดยไม่ต้องทำการกำหนดค่าเริ่มต้นได้เช่นกัน ดังตัวอย่างต่อไปนี้
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| #include<iostream> #include<string> using namespace std; int main () { string mystring; mystring = "First value" ; cout << mystring << endl; mystring = "Second value" ; cout << mystring << endl; return 0; }
|
การขึ้นบรรทัดใหม่ ด้วยคำสั่ง endl
การขึ้นบรรทัดใหม่ ด้วยคำสั่ง endl
การขึ้นบรรทัดใหม่ คือ การที่เราบอกให้ส่วน Output (จอดำๆ) ทำการขึ้นบรรทัดใหม่ ตามที่เราต้องการ
รูปแบบคำสั่งการขึ้นบรรทัดใหม่
cout << endl;
เงื่อนไข ใช้คำสั่ง endl
อย่าลืม ต้องใช้คู่กับคำสั่ง cout และมี เครื่องหมาย << คั่นเสมอ
#include <iostream>
using namespace std;int main()
{
cout << "Line 1";
cout << endl;
cout << "Line 2";
cin.get();
return 0;
}
ลองเขียน Source Code การขึ้นบรรทัดใหม่ด้วยคำสั่ง endl
ขั้นที่ 1)
ทำการสร้าง Source File ใหม่ใน Dev_C++ จากนั้น ทำการ Copy Source code ลงใน พื้นที่การเขียน Source code
#include <iostream>
using namespace std;int main()
{
cout << "Hello this C++ programming Lesson 6.";
cout << endl;
cout << "Line 1";
cout << endl;
cout << "Line 2";cin.get();
return 0;
}
ขั้นที่ 2)
Save Source file ชื่อ test_endl.cpp และ ทำการ Complie และ Run เพื่อดูผลลัพธ์
อธิบาย Source Code เพิ่มเติม
#include <iostream>
using namespace std;int main()
{
//แสดงผลข้อความ
cout << "Hello this C++ programming Lesson 6.";
// ขึ้นบรรทัดใหม่
cout << endl;
//แสดงผลข้อความ
cout << "Line 1";
// ขึ้นบรรทัดใหม่
cout << endl;
//แสดงผลข้อความ
cout << "Line 2";cin.get();
return 0;
}
การขึ้นบรรทัดใหม่ ด้วยคำสั่ง endl โดยใช้การเขียนแบบบรรทัดเดียว
เป็นการใช้ endl รวมอยู่ในส่วนการแสดงผลด้วยคำสั่ง cout โดยต้องมี << คั่นระหว่าง endl กับ สิ่งที่ต้องการแสดงผลอื่นๆ เช่น ข้อความ หรือ ตัวแปร เป็นต้น
รูปแบบคำสั่งการขึ้นบรรทัดใหม่
cout << "String" << endl;
ตัวอย่างการใช้งาน
cout << "Line 1" << endl;cout << "Line 1" << endl << "Line 2";
ลองเขียน Source Code การขึ้นบรรทัดใหม่ด้วยคำสั่ง endl แบบการเขียนบรรทัดเดียว
ขั้นที่ 1)
ทำการสร้าง Source File ใหม่ใน Dev_C++ จากนั้น ทำการ Copy Source code ลงใน พื้นที่การเขียน Source code
#include <iostream>
using namespace std;int main()
{
cout << "Hello this C++ programming Lesson 6.";
cout << endl;
cout << "Line 1" << endl << "Line 2";
cout << " In Line 2 " << endl << "Line 3";cin.get();
return 0;
}
ขั้นที่ 2)
Save Source file ชื่อ test_endl_inline.cpp และ ทำการ Complie และ Run เพื่อดูผลลัพธ์
อธิบาย Source Code เพิ่มเติม
#include <iostream>
using namespace std;int main()
{
// แสดงผลข้อความ
cout << "Hello this C++ programming Lesson 6.";
// ขึ้นบรรทัดใหม่
cout << endl;
// แสดงผล ข้อความ ตามด้วย เว้นบรรทัด ตามด้วย ข้อความ
cout << "Line 1" << endl << "Line 2";
// แสดงผล ข้อความ ตามด้วย เว้นบรรทัด ตามด้วย ข้อความ
cout << " In Line 2 " << endl << "Line 3";cin.get();
return 0;
}
GOTCHA !!
เอาล่ะครับเป็นยังไงกันบ้างครับ กับพื้นฐานอีกหนึ่งเรื่อง การขึ้นบรรทัดใหม่ ด้วยคำสั่ง endl ไม่ยากใช่ไหมครับ แค่นี้เราก็สามารถจัดการแสดงผลหน้า Output ของเราให้สวยงามขึ้นได้แล้วล่ะครับ หากท่านในยังไม่ค่อยเข้าใจ สามารถเข้ามาถามได้ที่ Fanpage TUTORTONG ได้เลยนะครับ ^^
สิ่งที่คุณจะทำได้หลังจากอ่านบทความนี้
- คุณสามารถแสดงผลขึ้นบรรทัดใหม่ได้
- คุณสามารถแสดงผลขึ้นบรรทัดใหม่ได้