|
6 | 6 |
|
7 | 7 | ถ้าจะอธิบายเป็นภาษาชาวบ้าน ตัวแปรก็เป็นแค่กล่องเก็บของนั่นเอง 📦
|
8 | 8 |
|
9 |
| -### การสร้างตัวแปร |
| 9 | +## การสร้างตัวแปร |
10 | 10 |
|
11 | 11 | การสร้างตัวแปร \(บ้างอาจเรียก การ "ประกาศ" ตัวแปร\) ทำได้โดยการตั้งชื่อของตัวแปร ตามด้วยเครื่องหมายเท่ากับ `=` แล้วตามด้วยค่าของข้อมูลทางด้านขวา
|
12 | 12 |
|
13 |
| -{% embed url="https://repl.it/@narze/variables-declare?lite=true" %} |
| 13 | +{% embed url="https://repl.it/@narze/variables-declare?lite=true" caption="" %} |
14 | 14 |
|
15 | 15 | จากตัวอย่างด้านบน เป็นการประกาศตัวแปร 3 ตัว ได้แก่ :
|
16 | 16 |
|
|
28 | 28 |
|
29 | 29 | เมื่อเราประกาศตัวแปรเสร็จแล้ว ลองใช้คำสั่ง `puts` กับตัวแปรเหล่านี้ดู
|
30 | 30 |
|
31 |
| -{% embed url="https://repl.it/@narze/variables-puts?lite=true" %} |
| 31 | +{% embed url="https://repl.it/@narze/variables-puts?lite=true" caption="" %} |
32 | 32 |
|
33 | 33 | นอกจากนี้ เรายังนำตัวแปรมาใช้ซำ้ได้ เช่นการใช้ตัวแปรมาบวกเลขกัน หรือเรียก[เมธอด](methods.md#method)กับตัวแปรสตริง เป็นต้น
|
34 | 34 |
|
35 |
| -{% embed url="https://repl.it/@narze/variables-methods?lite=true" %} |
| 35 | +{% embed url="https://repl.it/@narze/variables-methods?lite=true" caption="" %} |
36 | 36 |
|
37 | 37 | จากตัวอย่างด้านบน เป็นการใช้งานตัวแปร ได้แก่ :
|
38 | 38 |
|
|
47 | 47 |
|
48 | 48 | \`Traceback \(most recent call last\): \`
|
49 | 49 |
|
50 |
| - ``1: from main.rb:8:in `<main>'` |
| 50 | +```1: from main.rb:8:in``'\` |
51 | 51 |
|
52 | 52 | `main.rb:8:in`+': no implicit conversion of Integer into String \(TypeError\) exit status 1
|
53 | 53 |
|
|
58 | 58 |
|
59 | 59 | ซึ่งถ้าจะแก้ไขปัญหาของโค้ดส่วนนี้ จะต้องทำการแปลงค่า `x` ให้เป็นสตริงก่อน ด้วยเมธอดการแปลงค่าเป็นสตริง `.to_s` ซึ่งเมื่อเราแปลงแล้ว การบวกสตริงสองตัวเข้าด้วยกัน จะนับเป็นการเอาคำมาต่อท้ายนั่นเอง
|
60 | 60 |
|
61 |
| -{% embed url="https://repl.it/@narze/variables-methods-fix?lite=true" %} |
| 61 | +{% embed url="https://repl.it/@narze/variables-methods-fix?lite=true" caption="" %} |
62 | 62 |
|
63 | 63 | {% hint style="info" %}
|
64 | 64 | การแปลงประเภทข้อมูลในภาษา Ruby จะเป็นเมธอดที่นิยมตั้งชื่อเป็นรูปแบบของ `.to_*` เช่น
|
|
68 | 68 | * แปลงเป็นตัวเลขแบบทศนิยม \(To Float\) ใช้ `.to_f`
|
69 | 69 | {% endhint %}
|
70 | 70 |
|
71 |
| -### การเขียนค่าซำ้ในตัวแปร หรือประกาศตัวแปรใหม่ |
| 71 | +## การเขียนค่าซำ้ในตัวแปร หรือประกาศตัวแปรใหม่ |
72 | 72 |
|
73 | 73 | จากตัวอย่างก่อนหน้านี้ จะเห็นว่าเมื่อประกาศตัวแปรไปแล้ว ค่าจะเป็นเท่าเดิมเสมอแม้ว่าจะมีการใช้ซำ้ในหลายๆ บรรทัดก็ตาม
|
74 | 74 |
|
75 | 75 | แต่ถ้าเราทำการประกาศตัวแปรโดยใช้ชื่อเดิม จะถือว่าเป็นการล้างค่าตัวแปรเดิมไปเลย ตามตัวอย่างโค้ดด้านล่างนี้
|
76 | 76 |
|
77 |
| -{% embed url="https://repl.it/@narze/variables-methods-redeclare?lite=true" %} |
| 77 | +{% embed url="https://repl.it/@narze/variables-methods-redeclare?lite=true" caption="" %} |
78 | 78 |
|
79 | 79 | เมื่อถึงบรรทัด `puts x` จะได้ค่าออกมาเป็น `3` เพราะเราทำการประกาศซำ้หลายครั้ง ทำให้ค่าเดิมถูกล้างไป และครั้งสุดท้ายที่ประกาศคือ `x = 3`
|
80 | 80 |
|
81 | 81 | นอกจากนี้เรายังสามารถใช้ค่าจากตัวแปรเดิมในทางด้านขวา เพื่อกำหนดค่าใหม่ได้อีกด้วย
|
82 | 82 |
|
83 |
| -{% embed url="https://repl.it/@narze/variables-methods-redeclare-1?lite=true" %} |
| 83 | +{% embed url="https://repl.it/@narze/variables-methods-redeclare-1?lite=true" caption="" %} |
84 | 84 |
|
85 | 85 | เมื่อถึงบรรทัด `puts x` จะได้ค่าออกมาเป็น `6` ถ้าเราแจกแจงแต่ละบรรทัด `x` จะถูกเปลี่ยนค่าดังนี้
|
86 | 86 |
|
87 | 87 | * `x = 1` ทำให้ `x` มีค่าเป็น `1`
|
88 | 88 | * `x = x + 2`เป็นการประกาศ `x` ใหม่ แต่จากบรรทัดที่แล้ว `x` มีค่า `1` ทำให้ในบรรทัดนี้ `x` มีค่าเป็น `1 + 2` เท่ากับ `3`
|
89 | 89 | * `x = x + 3` เป็นการประกาศ `x` ใหม่อีกครั้ง แต่จากบรรทัดที่แล้ว `x` มีค่า `3` ทำให้ในบรรทัดนี้ `x` มีค่าเป็น `3 + 3` เท่ากับ `6`
|
90 | 90 |
|
91 |
| -### แบบฝึกหัด การใช้ตัวแปร |
| 91 | +## แบบฝึกหัด การใช้ตัวแปร |
92 | 92 |
|
93 | 93 | โจทย์ : มีตะกร้าผลไม้ทั้งหมด `5` ใบ ใบหนึ่งมีแอปเปิล `4` ลูก แต่มีแอปเปิลเสียไป `3` ลูกจากทั้งหมด จงหาว่าเหลือแอปเปิลที่ยังไม่เสียกี่ลูก ให้โปรแกรมตอบว่า `เหลือแอปเปิล 17 ลูก` โค้ดที่ให้จะยังมี Error อยู่ จงแก้โค้ดให้ทำงานได้และตอบคำถามได้ถูกต้อง โดยการสร้างตัวแปร `a, b, c และ d`
|
94 | 94 |
|
95 |
| -{% embed url="https://repl.it/@narze/variables-practice?lite=true" %} |
| 95 | +{% embed url="https://repl.it/@narze/variables-practice?lite=true" caption="" %} |
96 | 96 |
|
97 | 97 | ดูเฉลยได้ในบทถัดไป
|
| 98 | + |
0 commit comments