Biến trong ngôn ngữ lập trình – Tài liệu text

Biến trong ngôn ngữ lập trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (463.08 KB, 31 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH

  

BÁO CÁO ĐỒ ÁN
MÔN NGUYÊN LÝ VÀ PHƯƠNG PHÁP
LẬP TRÌNH – CS111.J11

ĐỀ TÀI: BIẾN TRONG NGÔN NGỮ
LẬP TRÌNH
GIÁO VIÊN HƯỚNG DẪN

ThS. TRỊNH QUỐC SƠN
SINH VIÊN THỰC HIỆN (nhóm 2)

Trần Phước Lợi – 16521723
Nguyễn Xuân Duy Hiển – 16521670

Thành phố Hồ Chí Minh, tháng 12 năm 2018
1

Lời mở đầu
Môn học Nguyên lý và pháp lập trình cung cấp cho chúng em những kiến
thức cơ bản về ngôn ngữ lập trình, những nguyên lý, phương pháp và kỹ thuật của
các ngôn ngữ lập trình, dòng ngôn ngữ lập trình. Đồng thời cung cấp kiến thức
giúp chúng em hiểu rõ các cơ chế xử lý của các thành phần cấu thành nên ngôn
ngữ lập trình.

Đề tài Biến trong ngôn ngữ lập trình là một chủ để quen thuộc với nhiều
sinh viên IT, để hiểu rõ hơn cơ chế của biến trong lập trình chúng em quyết định
tìm hiểu sâu về Biến cũng như cơ chế hoạt trong bên trong đó cùng với các vấn để
liên quan. Đây cũng là một chủ để chúng em rất thích, chính vì vậy chúng em đã
chọn đề tài này cho đồ án cuối kì này.
Trong quá trình hoàn thành đề tài, chúng em đã tìm hiểu được các khái
niệm về biến nói chung và một số khái niệm, đặc điểm về biến trong các ngôn ngữ
lập trình phổ biến như: C#, C++ Java, Golang, Javasprit…vv cũng như kỹ năng
tìm hiểu tham khảo tài liệu và các làm việc nhóm thuyết trình.
Chúng em xin trân trọng cám ơn sự hướng dẫn tận tình của thầy Trịnh Quốc
Sơn về mặc chuyên môn cũng như định hướng. Vì kiến thức còn hạn hẹp nên trong
quá trình thực hiện đề tài không thể tránh khỏi sai sót. Vì vậy rất mong nhận được
sự góp ý của thầy để đề tài có thể hoàn thiện hơn nữa.

2

Mục Lục
1. Tìm hiểu chung về biến ……………………………………………………………………………………. 5
1.1 Biến là gì …………………………………………………………………………………………………….. 5
1.2 Đặc trưng của biến ……………………………………………………………………………………….. 5
1.3 Kiểu dữ liệu cơ bản trong biến ……………………………………………………………………….. 5
2. Biến trong ngôn ngữ C# …………………………………………………………………………………… 6
2.1 Giới thiệu biến trong ngôn ngữ C# …………………………………………………………………. 6
2.2 Kiểu dữ liệu của biến trong C# ………………………………………………………………………. 7
2.3 Khai báo biến trong C# …………………………………………………………………………………. 7
2.4 Một số trường hợp đặt biện của biến trong C# …………………………………………………. 7
3. Biến trong ngôn ngữ Java ………………………………………………………………………………. 12
3.1 Giới thiệu biến trong ngôn ngữ Java ……………………………………………………………… 12
3.2 Khai báo biến trong ngôn ngữ Java……………………………………………………………….. 12

3.3 Kiểu dữ liệu của biến trong ngôn ngữ Java…………………………………………………….. 13
3.4 Các loại biến trong Java ………………………………………………………………………………. 14
3.4.1 Biến local trong Java……………………………………………………………………………… 14
3.4.2 Biến biến instance (biến toàn cục) trong java ……………………………………………. 15
3.4.3 Biến static trong java …………………………………………………………………………….. 17
4. Biến trong ngôn ngữ C++……………………………………………………………………………….. 18
4.1 Giới thiệu biến trong ngôn ngữ C++ ……………………………………………………………… 18
4.2 Khai báo biến trong ngôn ngữ C++ ………………………………………………………………. 18
4.3 Kiểu dữ liệu trong C++ ……………………………………………………………………………….. 22
5. Biến trong ngôn ngữ Javascript ……………………………………………………………………… 23
5.1 Giới thiệu biến trong JS ………………………………………………………………………………. 23
5.2 Khai báo biến trong JavaScript …………………………………………………………………….. 23
5.2.1 Gán giá trị cho biến ……………………………………………………………………………….. 23
5.2.2 Gán kiểu giá trị cho biến ………………………………………………………………………… 24
5.3 Một số toán tử, kết hợp toán tử trong JavaScript …………………………………………….. 24
5.4 Quy tắc đặt tên biến…………………………………………………………………………………….. 24
5.5 Một số vấn đề khác trong JavaScriptPhá vỡ chuỗi trong JavaScript ………………….. 25
3

6. Biến trong ngôn ngữ GoLang …………………………………………………………………………. 25
6.1 Giới thiệu biến trong ngôn ngữ GoLang ………………………………………………………… 25
6.2 Khai báo biến trong Go ……………………………………………………………………………….. 25
6.3 Các kiểu dữ liệu trong Go ……………………………………………………………………………. 26
6.4 Một số toán tử trong Go ………………………………………………………………………………. 26
6.5 Quy tắt đặt tên biến trong Go ……………………………………………………………………….. 27
6.6 Một số vấn đề khác trong Go ……………………………………………………………………….. 27
7. So Sánh điểm khác nhau giữa các ngôn ngữ C#, Java, C++, Go, JS ……………… 28
7.1 Sự khác biệt về cú pháp và kiểu dữ liệu giữa các ngôn ngữ ……………………………… 28
7.2 Sự khác biệt về quy tắt đặt tên giữa các ngôn ngữ…………………………………………… 28

7.3 Sự khác biệt về phạm vi và thời gian tồn tại giữa các ngôn ngữ ……………………….. 29

4

1. Tìm hiểu chung về biến
1.1 Biến là gì
Khái niệm biến trong lập trình gần giống với khái niệm biến số trong Toán học.
Biến (variable) là một tên biểu thị cho một số lượng, một ký hiệu hay một đối tượng. một
biến sẽ được dành sẵn chỗ (phần của bộ nhớ) để chứa số lượng, ký hiệu hay đối tượng đó.

Biến của chương trình sẽ có thể thay đổi giá trị hoặc không thay đổi gì cả. một biến
có thể bị thay đổi cả lượng bộ nhớ mà nó đang chiếm lấy.

Biến không được gán giá trị hay có gán giá trị nhưng không được sử dụng thì chỉ
chiếm chỗ trong bộ nhớ.

Mỗi biến sẽ có tên của nó và có thể có kiểu xác định. Tùy theo ngôn ngữ, một biến
có thể được khai báo ở vị trí nào đó trong mã nguồn và cũng tùy ngôn ngữ, tùy phần
mềm dịch và cách thức lập trình mà một biến có thể được tạo nên (cùng với chỗ
chứa) hay bị xóa bỏ tại một thời điểm nào đó trong lúc thực thi chương trình.

1.2 Đặc trưng của biến
Một biến nói chung phải có các đặc trưng sau:
– Tên biến.

– Kiểu dữ liệu: kiểu của biến.
– Giá trị hiện tại nó đang lưu giữ – giá trị của biến( nếu có ).
Trong các ngôn ngữ lập trình các biến đều phải có tên, các tên biến hay nói chung
là tên (gồm tên biến, tên hằng, tên hàm, hoặc từ khoá) là một xâu kí tự và phải tuân theo
các quy định của ngôn ngữ lập trình.
Việc các biến bị xóa bỏ là để tiết kiệm bộ nhớ cũng như làm tốt hơn việc quản lý
phần bộ nhớ mà đôi khi một chương trình chỉ được cấp bởi đăng ký với hệ điều hành.
Quá trình tồn tại của một biến gọi là đời sống của biến. Trong nhiều trường hợp đời
sống của một biến chỉ xảy ra trong nội bộ một hàm, một thủ tục hay trong một khối mã.
1.3 Kiểu dữ liệu cơ bản trong biến
Kiểu dữ liệu trong biến

5

Kiểu dữ liệu

Ví dụ

Kiểu số nguyên

sbyte, byte, short, ushort, int, uint, long,
ulong, và char

Kiểu số thực dấu chấm động

float và double

Kiểu thập phân

decimal

Kiểu Boolean

true hoặc false

Kiểu Nullable

Kiểu dữ liệu Nullable

Các ngôn ngữ cũng cho phép định nghĩa các kiểu giá trị khác của biến như
kiểu enum và các kiểu tham chiếu của biến như class, tùy theo từng ngôn ngữ sẽ có các các
khai báo khác nhau.
Các kiểu giá trị cơ bản trong ngôn ngữ lập trình phổ biến có thể được phân chia
thành:

2. Biến trong ngôn ngữ C#
2.1 Giới thiệu biến trong ngôn ngữ C#
Biến là một tên được cung cấp cho khu vực lưu giữ mà chương trình có thể thao tác.
Mỗi biến trong C# có một kiểu cụ thể, mà quyết định kích cỡ và cách bố trí bộ nhớ của
biến đó, cách dãy giá trị có thể được lưu giữ trong bộ nhớ đó, và cách tập hợp các hoạt
động có thể được áp dụng tới biến đó.
Cấu trúc của bộ nhớ bao gồm các ô nhớ liên tiếp nhau và trong mỗi ô nhớ có một
địa chỉ riêng, vì vậy khi sử dung chúng ta phải biết địa chỉ của chúng, điều này gây khó
khăn rất nhiều đến việc lập trình chúng ta. Thay vào đó ta có thể sử dụng biến để tham
chiếu đến vùng nhớ mà ta đặt chứ ko cần đến địa chỉ ô nhớ nữa.
Vậy nên chúng ta sử dụng biến để thao tác với bộ nhớ một cách dễ dàng cũng như
có thể lưu dữ diệu và tái sử dụng lại chúng cho việc lập trình tiện lợi nhất có thể.

6

2.2 Kiểu dữ liệu của biến trong C#
Các kiểu giá trị cơ bản trong C# có thể được phân chia thành:
Kiểu dữ liệu

Ví dụ

Kiểu số nguyên

sbyte, byte, short, ushort, int, uint, long,
ulong, và char

Kiểu số thực dấu chấm động

float và double

Kiểu thập phân

decimal

Kiểu Boolean

true hoặc false

Kiểu Nullable

Kiểu dữ liệu Nullable

C# cũng cho phép định nghĩa các kiểu giá trị khác của biến như kiểu enum và các

kiểu tham chiếu của biến như class, sẽ được bàn luận trong các chương tới.
2.3 Khai báo biến trong C#
Định nghĩa biến trong C#
Cú pháp để định nghĩa biến trong C# là:
<kiểu_dữ_liệu> <danh_sách_biến>;
Ở đây, kiểu_dữ_liệu phải là một kiểu dữ liệu hợp lệ trong C#, gồm: char, int, double
hoặc bất kỳ kiểu dữ liệu tự định nghĩa (user-defined) nào và danh_sách_biến có thể chứa
một hoặc nhiều tên định danh được phân biệt bởi dấu phẩy.
2.4 Một số trường hợp đặt biện của biến trong C#
Dưới đây là một số định nghĩa biến hợp lệ trong C#:
int i, j, k;
char c, ch;
7

float f, salary;
double d;
Bạn có thể khởi tạo một biến tại thời điểm định nghĩa, như sau:
int i = 100;
Khởi tạo biến trong C#
Biến được khởi tạo (được gán một giá trị) với một dấu bằng được theo sau bởi một
biểu thức hằng. Form chung cho khởi tạo biến trong C# là:
tên_biến = giá_trị;
Các biến có thể được khởi tạo trong khai báo của chúng. Phần khởi tạo gồm một
dấu bằng được theo sau bởi một biểu thức hằng, như sau:
<kiểu_dữ_liệu> <tên_biến> = giá_trị;
Một số ví dụ về khởi tạo biến trong C# là:
int d = 3, f = 5;

/* khai báo và khởi tạo biến d và f. */

byte z = 22;

/* khai báo và khởi tạo biến z. */

double pi = 3.14159; /* khai báo và khởi tạo biến pi */
char x = ‘x’;

/* khai báo và khởi tạo biến ký tự x. */

Việc khởi tạo biến một cách chính xác là một bài thực hành tốt cho bạn, nếu không
thì chương trình có thể tạo ra kết quả không mong đợi.
Ví dụ sau sử dụng các kiểu biến đa dạng trong C#:
using System;

namespace Nhom2
{
class TestCsharp
{
8

static void Main(string[] args)
{
Console.WriteLine(“Khai bao va khoi tao bien trong C#”);
Console.WriteLine(“———————————-“);

//khai bao bien
short a;
int b;

double c;

/* khoi tao bien */
a = 10;
b = 20;
c = a + b;
Console.WriteLine(“a = {0}, b = {1}, c = {2}”, a, b, c);
Console.ReadLine();

Console.ReadKey();
}
}
}
Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

Nhận giá trị từ người dùng trong C#
9

Lớp Console trong System namespace cung cấp hàm ReadLine() để nhận đầu vào
từ người dùng (chẳng hạn nhập từ bàn phím) và lưu nó vào trong một biến.
Ví dụ:
int num;
num = Convert.ToInt32(Console.ReadLine());
Hàm Convert.ToInt32() chuyển đổi dữ liệu đã nhập bởi người dùng thành kiểu dữ
liệu int, bởi vì Console.ReadLine() chấp nhận dữ liệu trong định dạng chuỗi.
Biểu thức lvalue và rvalue trong C#
Có hai loại biểu thức trong C#:
lvalue: Một biểu thức mà là một lvalue có thể xuất hiện hoặc bên trái hoặc bên phải
của phép gán trong C#.

rvalue: Một biểu thức mà là một rvalue có thể xuất hiện bên phải nhưng không thể
ở bên trái của một phép gán trong C#.
Các biến là lvalue và vì thế chúng có thể xuất hiện ở bên trái của một phép gán. Các
hằng số là rvalue và vì thế chúng không thể được gán và không thể xuất hiện ở bên trái của
một phép gán. Sau đây là một lệnh hợp lệ trong C#:
int g = 20;
Nhưng lệnh sau là không hợp lệ và sẽ tạo một Compile-time error trong C#:
10 = 20;
Phạm vi hoạt động của biến là vùng đoạn mã mà từ đấy biến có thể được truy xuất.
Trong một phạm vi hoạt động (scope), không thể có hai biến cùng mang một tên trùng
nhau.
Thí dụ ta không thể làm như sau :
int x = 20;
// một số câu lệnh ở đây
int x = 30;
Xét ví dụ sau:

10

using System;
namespace Nhom2
{
public class ScopeTest
{
public static int Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);

} // biến i ra khỏi phạm vi
// Chúng ta có thể khai báo thêm biến i ở đây
for (int i = 9; i >= 0; i–)
{
Console.WriteLine(i);
} // biến i ra khỏi phạm vi ở đây
return 0;
}
}
}

Đoạn mã trên đơn giản in ra các số từ 0 đến 9, rồi lộn ngược lại từ 9 đến 0, sử dụng
vòng lặp for.Chúng ta sẽ đề cập loại vòng lặp này. Điều quan trọng là ở đây chúng ta khai
báo biến i hai lần trong cùng một hàm ScopeTest.Chúng ta có thể làm được điều này vì i
được khai báo trong vòng lặp nghĩa là biến i cục bộ đối với vòng lặp.Một khi vòng lặp
hoàn thành nhiệm vụ thì biến thoát khỏi phạm vi, và không thể truy xuất được nữa.

11

3. Biến trong ngôn ngữ Java
3.1 Giới thiệu biến trong ngôn ngữ Java
Một biến của Java là tên gọi của một vùng nhớ bên trong máy tính dùng để lưu trữ
giá trị mà chương trình của chúng ta có thể tương tác được. Giữa biến và kiểu dữ liệu có
một mối liên hệ mật thiết với nhau, một kiểu dữ liệu phải có một biến để lưu trữ nó.
Mỗi biến trong Java bao gồm 3 phần sau: tên biến, kiểu dữ liệu và giá trị của biến đó.

Tên biến là sự biểu diễn tượng trưng của vùng nhớ trong đó thông tin được lưu trữ.

Kiểu dữ liệu dùng để xác định kích thước và loại giá trị có thể được lưu trữ.

Giá trị là dữ liệu thực tế được lưu trữ trên biến và có thể thay đổi được.

Trong Java, biến là tên của vùng nhớ. Có 3 kiểu biến trong java, bao gồm biến local
(biến địa phương), biến instance (biến toàn cục) và biến static.

3.2 Khai báo biến trong ngôn ngữ Java
Cú pháp khai báo biến:

DataType varName [ = value] [, varName2] [ = value2]…;
Trong đó, DataType là kiểu dữ liệu của biến, varName là tên biến.
Quy tắc đặt tên biến trong java:

12





Chỉ được bắt đầu bằng một ký tự(chữ), hoặc một dấu gạch dưới(_), hoặc một ký tự
dollar($)
Tên biến không được chứa khoảng trắng

Bắt đầu từ ký tự thứ hai, có thể dùng ký tự(chữ), dấu gạch dưới(_), hoặc ký tự
dollar($)
Không được trùng với các từ khóa
Có phân biệt chữ hoa và chữ thường

Ví dụ về khai báo biến trong java:
package vn.viettuts.bienvadulieu;
public class Bien {
public static float PI = 3.14f; // Đây là biến static
int n;
// Đây là biến instance
public Bien () {
char c = ‘c’;
}

// Đây là biến local

}
3.3 Kiểu dữ liệu của biến trong ngôn ngữ Java

Kiểu dữ liệu

Giá trị mặc định

Kích cỡ mặc định

boolean

false

1 bit

char

‘\u0000’

4 byte

byte

0

1 byte

13

Kiểu dữ liệu

Giá trị mặc định

Kích cỡ mặc định

short

0

2 byte

int

0

4 byte

long

0L

8 byte

float

0.0f

4 byte

double

0.0d

8 byte

3.4 Các loại biến trong Java
3.4.1 Biến local trong Java




Biến local được khai báo trong các phương thức, hàm contructor hoặc trong các
block.
Biến local được tạo bên trong các phương thức, contructor, block và sẽ bị phá hủy
khi kết thúc các phương thức, contructor và block.
Không được sử dụng “access modifier” khi khai báo biến local.
Các biến local được lưu trên vùng nhớ stack của bộ nhớ.
Bạn cần khởi tạo giá trị mặc định cho biến local trước khi có thể sử dụng.

Ví dụ 1: Khởi tạo biến local:

public class Bien {
public void sayHello() {
int n = 10;
// Đây là biến local
System.out.println(“Gia tri cua n la: ” + n);
14

}
public static void main(String[] args) {
Bien bienLocal = new Bien();
bienLocal.sayHello();
}
}
Kết quả:
Gia tri cua n la: 10
Ví dụ 2: Không khởi tạo biến local:

public class Bien {

public void sayHello() {
int n;
// Đây là biến local
System.out.println(“Gia tri cua n la: ” + n);
}
public static void main(String[] args) {
Bien bienLocal = new Bien();
bienLocal.sayHello();
}
}
Kết quả:
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The local variable n may not have been initialized
Khi không khởi tạo biến local, chương trình java sẽ báo lỗi khi biên dịch.
3.4.2 Biến biến instance (biến toàn cục) trong java

Biến instance được khai báo trong một lớp(class), bên ngoài các phương thức,
constructor và các block.
Biến instance được lưu trong bộ nhớ heap.
15




Biến instance được tạo khi một đối tượng được tạo bằng việc sử dụng từ khóa “new”
và sẽ bị phá hủy khi đối tượng bị phá hủy.
Biến instance có thể được sử dụng bởi các phương thức, constructor, block, …
Nhưng nó phải được sử dụng thông qua một đối tượng cụ thể.
Bạn được phép sử dụng “access modifier” khi khai báo biến instance, mặc định là
“default”.
Biến instance có giá trị mặc định phụ thuộc vào kiểu dữ liệu của nó. Ví dụ nếu là
kiểu int, short, byte thì giá trị mặc định là 0, kiểu double thì là 0.0d, … Vì vậy, bạn
sẽ không cần khởi tạo giá trị cho biến instance trước khi sử dụng.
Bên trong class mà bạn khai báo biến instance, bạn có thể gọi nó trực tiếp bằng tên
khi sử dụng ở khắp nới bên trong class đó.

Ví dụ về biến instance trong java:

public class Sinhvien {
// biến instance “ten” kiểu String, có giá trị mặc định là null
public String ten;
// biến instance “tuoi” kiểu Integer, có giá trị mặc định là 0
private int tuoi;
// sử dụng biến ten trong một constructor
public Sinhvien(String ten) {
this.ten = ten;
}
// sử dụng biến tuoi trong phương thức setTuoi
public void setTuoi(int tuoi) {
this.tuoi = tuoi;
}
public void showStudent() {
System.out.println(“Ten : ” + ten);

System.out.println(“Tuoi : ” + tuoi);
}

16

public static void main(String args[]) {
Sinhvien sv = new Sinhvien(“Nguyen Van A”);
sv.setTuoi(21);
sv.showStudent();
}
}
Kết quả:
Ten : Nguyen Van A
Tuoi : 21

3.4.3 Biến static trong java
Biến static được khai báo trong một class với từ khóa “static”, phía bên ngoài các
phương thức, constructor và block.





Sẽ chỉ có duy nhất một bản sao của các biến static được tạo ra, dù bạn tạo bao nhiêu
đối tượng từ lớp tương ứng.
Biến static được lưu trữ trong bộ nhớ static riêng.
Biến static được tạo khi chương trình bắt đầu chạy và chỉ bị phá hủy khi chương

trình dừng.
Giá trị mặc định của biến static phụ thuộc vào kiểu dữ liệu bạn khai báo tương tự
biến instance.
Biến static được truy cập thông qua tên của class chứa nó, với cú pháp:
TenClass.tenBien.
Trong class, các phương thức sử dụng biến static bằng cách gọi tên của nó khi
phương thức đó cũng được khai báo với từ khóa “static”.

Ví dụ về biến static trong java:
public class Sinhvien {
// biến static ‘ten’
public static String ten = “Nguyen Van A”;
// biến static ‘tuoi’
public static int tuoi = 21;
public static void main(String args[]) {
17

// Sử dụng biến static bằng cách gọi trực tiếp
System.out.println(“Ten : ” + ten);
// Sử dụng biến static bằng cách gọi thông qua tên class
System.out.println(“Ten : ” + Sinhvien.tuoi);
}
}
Kết quả:
Ten : Nguyen Van A
Ten : 21

4. Biến trong ngôn ngữ C++
4.1 Giới thiệu biến trong ngôn ngữ C++

Biến dùng để lưu trữ một giá trị nào đó. Bạn cứ tưởng tượng rằng giả sử bạn có một
cái bao và bạn có thể sử dụng cái bao đó với nhiều mục đích khác nhau như dùng để chứa
gạo, chưa ngô, chứa khoai, … thì lúc này cái bao đó được ví như là một biến trong C++.
Đó là ví dụ trong thực tế còn trong lập trình thì biến sẽ được lưu trữ tại một vị trí
nào đó trong bộ nhớ của máy tính, sau đó khi muốn sử biến nào thì hệ thống sẽ tìm trong
bộ nhớ xem có tồn tại biến đó không? Nếu tồn tại thì sử dụng bình thường, ngược lại thì
chương trình sẽ bị lỗi vì bạn đã sử dụng một biến chưa được khởi tạo.
4.2 Khai báo biến trong ngôn ngữ C++
Vì chúng ta chưa học các kiểu dữ liệu trong C++ nên nếu bạn không hiểu các ví dụ
dưới đây thì hãy đọc sơ lược bài tiếp theo rồi quay lại bài này nhé.
Để khai báo biến trong C++ thì ta sử dụng cú pháp sau:
<kieu_du_lieu > < ten_bien>;
Ví dụ: Khai báo biến kiểu number (tức là kiểu int, int là viết tắt của interger)
int namsinh;

18

Để gán giá trị cho biến thì ta sử dụng toán tử gán =.
Ví dụ: Gán giá trị 1990 cho biến namsinh.
int namsinh;
namsinh = 1990;
Ngoài ra ta cũng có thể gán giá trị cho biến ngay lúc khởi tạo. Với ví dụ trên thì ta
viết lại như sau:
int namsinh = 1990;
Biến cục bộ trong C++
Các biến được khai báo bên trong một hàm hoặc khối là các biến cục bộ (local).
Chúng chỉ có thể được sử dụng bởi các lệnh bên trong hàm hoặc khối code đó. Các biến
cục bộ không được biết ở bên ngoài hàm đó (tức là chỉ được sử dụng bên trong hàm hoặc
khối code đó). Dưới đây là ví dụ sử dụng các biến cục bộ:

#include <iostream>
using namespace std;

int main ()
{
// phan khai bao bien cuc bo:
int a, b;
int c;

// phan khoi tao bien
a = 10;
b = 20;
c = a + b;

19

cout << c;

return 0;
}
Biến toàn cục trong C++
Biến toàn cục (global) trong C++ được định nghĩa bên ngoài các hàm, thường ở
phần đầu chương trình. Các biến toàn cục giữ giá trị của nó trong suốt vòng đời chương
trình của bạn.
Một biến toàn cục có thể được truy cập bởi bất kỳ hàm nào. Tức là, một biến toàn
cục là có sẵn cho bạn sử dụng trong toàn bộ chương trình sau khi đã khai báo nó. Dưới
đây là ví dụ sử dụng biến toàn cục và biến nội bộ trong C++:

#include <iostream>
using namespace std;

// phan khai bao bien toan cuc:
int g;

int main ()
{
// phan khai bao bien cuc bo:
int a, b;

// phan khoi tao bien
a = 10;
b = 20;
20

g = a + b;

cout << g;

return 0;
}
Một chương trình có thể có các biến toàn cục và biến cục bộ cùng tên với nhau, nhưng
trong một hàm thì giá trị của biến cục bộ sẽ được ưu tiên. Ví dụ:
#include <iostream>
using namespace std;

// phan khai bao bien toan cuc:
int g = 20;

int main ()
{
// phan khai bao bien cuc bo:
int g = 10;

cout << g;

return 0;
}
Khi code trên được biên dịch và thực thi, nó cho kết quả sau:
10
Khởi tạo biến cục bộ và biến toàn cục bởi hệ thống trong C++

21

Khi một biến cục bộ được định nghĩa, nó không được khởi tạo bởi hệ thống, chính bạn phải
khởi tạo nó. Các biến toàn cục được khởi tạo tự động bởi hệ thống khi bạn định nghĩa
chúng, như sau:
Kiểu dữ liệu

Giá trị khởi tạo

int

0

char

‘\0’

float

0

double

0

pointer

NULL

4.3 Kiểu dữ liệu trong C++
Tên tiếng Anh là Primitive Type, còn có thể gọi là kiểu dữ liệu gốc, kiểu dữ liệu có
sẵn trong C/C++. Bên cạnh các kiểu dữ liệu gốc này, C/C++ cũng cung cấp các kiểu dữ
liệu user-defined. Bảng dưới đây liệt kê 7 kiểu dữ liệu cơ bản trong C/C++:
Kiểu dữ liệu

Từ khóa

Boolean

bool

Ký tự

char

Số nguyên

int

22

Số thực

float

Số thực dạng Double

double

Kiểu không có giá trị

void

Kiểu Wide character

wchar_t

5. Biến trong ngôn ngữ Javascript
5.1 Giới thiệu biến trong JS
Giống như nhiều ngôn ngữ chương trình khác, JavaScript có các biến. Biến có thể
được xem là một nơi chứa (container) được đặt tên. Bạn có thể đặt dữ liệu vào trong nơi
chứa này và sau đó tham chiếu đến dữ liệu này một cách đơn giản là đặt tên cho nơi chứa.
JavaScript là ngôn ngữ untyped (không định kiểu). Nghĩa là một biến JavaScript có
thể giữ một giá trị của bất kỳ kiểu dữ liệu nào. Không giống nhiều ngôn ngữ khác, bạn

không phải nói cho JavaScript trong suốt quá trình khai báo biến về kiểu giá trị mà biến đó
giữ. Kiểu giá trị của biến có thể thay đổi trong suốt quá trình thực thi một chương trình và
JavaScript chăm sóc nó một cách tự động.
5.2 Khai báo biến trong JavaScript
Để khai báo một biến ta sử dụng từ khóa:<var> + <tenbien>
Vd: var a;
Ngoài cách khai báo như trên ta còn có cách khai báo nhiều biến cùng một lúc bằng
cách viết chúng liên tiếp với nhau và cách nhau bởi dấu phẩy.
Vd: var a, b, c;
5.2.1 Gán giá trị cho biến
Để gán giá trị cho biến ta dùng dấu bằng (=)

23

Vd: var a = 1;
5.2.2 Gán kiểu giá trị cho biến
Trong Javascript rất hạn chế về kiểu dữ liệu nhưng bù lại cơ chế xử lý kiểu dữ liệu
của nó rất linh hoạt giúp lập trình viên có thể chuyển đổi một cách dễ dàng, bởi mọi kiểu
dữ liệu đều có thể quy về đối tượng và mỗi đối tượng ta có thể bổ sung các phương thức
xử lý riêng.
Vd:
var a = 1.0; // số
var ten = “An”; // chuỗi
var b = true; // Boolean
Nếu không gán giá trị, kiểu dữ liệu sẽ là undefined
5.3 Một số toán tử, kết hợp toán tử trong JavaScript
Một số toán tử + – * / % == <= >= < > …
Ta có thể kết hợp việc sử dụng toán tử + và = như sau:
var a = 1 + 2 + 3; // 6

var a = “xin” + ” ” + “chao”; // xin chao
var a = “Ta” + 1; // Ta1
5.4 Quy tắc đặt tên biến
Trong JavaScript, ta phải tuân theo quy tắc sau đây
– Tên biến phải là các chữ không dấu viết hoa hoặc viết thường, các chữ số từ 0-9
và dấu gạch dưới
– Tên biến bắt đầu phải là chữ hoặc dấu gạch dưới _ hoặc dấu $
– Có phân biệt chữ hoa – thường
– Không được trùng lặp với từ khóa: function, while, for,…
Phạm vi, thời gian tồn tại của biến trong JavaScript:
Trong JavaScript, biển cục bộ được khai báo trong hàm hoặc trong một khối (thông
qua từ khóa let) – chỉ tồn tại trong hàm hoặc một khối hàm đó

24

Đối với biến toàn cục: biến được tạo ra trong thân chương trình – tồn tại trong suốt
quá trình thực hiện chương trình
5.5 Một số vấn đề khác trong JavaScriptPhá vỡ chuỗi trong JavaScript
Đối với JavaScript, khi khai báo một chuỗi chứa dấu xuống dòng sẽ không được chấp nhận:
Vd:
var x = “xin
chao”;
Tuy nhiên, ta có thể khắc phục như sau:
Vd:
var
chao”;

x

=“xin

\

Biến cũng có thể được lưu bằng mảng, cú pháp như sau:
var tên_mảng = new Array()
VD: var a = new Array()
a[0] = 10;
a[1] = 5;

6. Biến trong ngôn ngữ GoLang
6.1 Giới thiệu biến trong ngôn ngữ GoLang
Ngôn ngữ lập trình Go là ngôn ngữ nguồn mở của Google, giúp chúng ta dễ dàng
tạo được phần mềm đơn giản, ổn định và hiệu quả. Go là một phần trong dòng ngôn ngữ
lập trình của nhóm Communicationg Sequential Processes của Tony Hoare đưa ra, ngoài
Go còn có Occam, Erlang, Newsqueak và Limbo. Go có một tính nặng hữu dụng hơn hầu
hết những ngôn ngữ lập trình cơ bản đó là concurrency.
6.2 Khai báo biến trong Go
Biến được khai báo sử dụng từ khoá var và theo sau là kiểu dữ liệu:
Cú pháp khai báo: var tên_biến kiểu_dữ_liệu
25

Đề tài Biến trong ngôn ngữ lập trình là một chủ để quen thuộc với nhiềusinh viên IT, để hiểu rõ hơn cơ chế của biến trong lập trình chúng em quyết địnhtìm hiểu sâu về Biến cũng như cơ chế hoạt trong bên trong đó cùng với các vấn đểliên quan. Đây cũng là một chủ để chúng em rất thích, chính vì vậy chúng em đãchọn đề tài này cho đồ án cuối kì này.Trong quá trình hoàn thành đề tài, chúng em đã tìm hiểu được các kháiniệm về biến nói chung và một số khái niệm, đặc điểm về biến trong các ngôn ngữlập trình phổ biến như: C#, C++ Java, Golang, Javasprit…vv cũng như kỹ năngtìm hiểu tham khảo tài liệu và các làm việc nhóm thuyết trình.Chúng em xin trân trọng cám ơn sự hướng dẫn tận tình của thầy Trịnh QuốcSơn về mặc chuyên môn cũng như định hướng. Vì kiến thức còn hạn hẹp nên trongquá trình thực hiện đề tài không thể tránh khỏi sai sót. Vì vậy rất mong nhận đượcsự góp ý của thầy để đề tài có thể hoàn thiện hơn nữa.Mục Lục1. Tìm hiểu chung về biến ……………………………………………………………………………………. 51.1 Biến là gì …………………………………………………………………………………………………….. 51.2 Đặc trưng của biến ……………………………………………………………………………………….. 51.3 Kiểu dữ liệu cơ bản trong biến ……………………………………………………………………….. 52. Biến trong ngôn ngữ C# …………………………………………………………………………………… 62.1 Giới thiệu biến trong ngôn ngữ C# …………………………………………………………………. 62.2 Kiểu dữ liệu của biến trong C# ………………………………………………………………………. 72.3 Khai báo biến trong C# …………………………………………………………………………………. 72.4 Một số trường hợp đặt biện của biến trong C# …………………………………………………. 73. Biến trong ngôn ngữ Java ………………………………………………………………………………. 123.1 Giới thiệu biến trong ngôn ngữ Java ……………………………………………………………… 123.2 Khai báo biến trong ngôn ngữ Java……………………………………………………………….. 123.3 Kiểu dữ liệu của biến trong ngôn ngữ Java…………………………………………………….. 133.4 Các loại biến trong Java ………………………………………………………………………………. 143.4.1 Biến local trong Java……………………………………………………………………………… 143.4.2 Biến biến instance (biến toàn cục) trong java ……………………………………………. 153.4.3 Biến static trong java …………………………………………………………………………….. 174. Biến trong ngôn ngữ C++……………………………………………………………………………….. 184.1 Giới thiệu biến trong ngôn ngữ C++ ……………………………………………………………… 184.2 Khai báo biến trong ngôn ngữ C++ ………………………………………………………………. 184.3 Kiểu dữ liệu trong C++ ……………………………………………………………………………….. 225. Biến trong ngôn ngữ Javascript ……………………………………………………………………… 235.1 Giới thiệu biến trong JS ………………………………………………………………………………. 235.2 Khai báo biến trong JavaScript …………………………………………………………………….. 235.2.1 Gán giá trị cho biến ……………………………………………………………………………….. 235.2.2 Gán kiểu giá trị cho biến ………………………………………………………………………… 245.3 Một số toán tử, kết hợp toán tử trong JavaScript …………………………………………….. 245.4 Quy tắc đặt tên biến…………………………………………………………………………………….. 245.5 Một số vấn đề khác trong JavaScriptPhá vỡ chuỗi trong JavaScript ………………….. 256. Biến trong ngôn ngữ GoLang …………………………………………………………………………. 256.1 Giới thiệu biến trong ngôn ngữ GoLang ………………………………………………………… 256.2 Khai báo biến trong Go ……………………………………………………………………………….. 256.3 Các kiểu dữ liệu trong Go ……………………………………………………………………………. 266.4 Một số toán tử trong Go ………………………………………………………………………………. 266.5 Quy tắt đặt tên biến trong Go ……………………………………………………………………….. 276.6 Một số vấn đề khác trong Go ……………………………………………………………………….. 277. So Sánh điểm khác nhau giữa các ngôn ngữ C#, Java, C++, Go, JS ……………… 287.1 Sự khác biệt về cú pháp và kiểu dữ liệu giữa các ngôn ngữ ……………………………… 287.2 Sự khác biệt về quy tắt đặt tên giữa các ngôn ngữ…………………………………………… 287.3 Sự khác biệt về phạm vi và thời gian tồn tại giữa các ngôn ngữ ……………………….. 291. Tìm hiểu chung về biến1.1 Biến là gìKhái niệm biến trong lập trình gần giống với khái niệm biến số trong Toán học.Biến (variable) là một tên biểu thị cho một số lượng, một ký hiệu hay một đối tượng. mộtbiến sẽ được dành sẵn chỗ (phần của bộ nhớ) để chứa số lượng, ký hiệu hay đối tượng đó.Biến của chương trình sẽ có thể thay đổi giá trị hoặc không thay đổi gì cả. một biếncó thể bị thay đổi cả lượng bộ nhớ mà nó đang chiếm lấy.Biến không được gán giá trị hay có gán giá trị nhưng không được sử dụng thì chỉchiếm chỗ trong bộ nhớ.Mỗi biến sẽ có tên của nó và có thể có kiểu xác định. Tùy theo ngôn ngữ, một biếncó thể được khai báo ở vị trí nào đó trong mã nguồn và cũng tùy ngôn ngữ, tùy phầnmềm dịch và cách thức lập trình mà một biến có thể được tạo nên (cùng với chỗchứa) hay bị xóa bỏ tại một thời điểm nào đó trong lúc thực thi chương trình.1.2 Đặc trưng của biếnMột biến nói chung phải có các đặc trưng sau:– Tên biến.– Kiểu dữ liệu: kiểu của biến.– Giá trị hiện tại nó đang lưu giữ – giá trị của biến( nếu có ).Trong các ngôn ngữ lập trình các biến đều phải có tên, các tên biến hay nói chunglà tên (gồm tên biến, tên hằng, tên hàm, hoặc từ khoá) là một xâu kí tự và phải tuân theocác quy định của ngôn ngữ lập trình.Việc các biến bị xóa bỏ là để tiết kiệm bộ nhớ cũng như làm tốt hơn việc quản lýphần bộ nhớ mà đôi khi một chương trình chỉ được cấp bởi đăng ký với hệ điều hành.Quá trình tồn tại của một biến gọi là đời sống của biến. Trong nhiều trường hợp đờisống của một biến chỉ xảy ra trong nội bộ một hàm, một thủ tục hay trong một khối mã.1.3 Kiểu dữ liệu cơ bản trong biếnKiểu dữ liệu trong biếnKiểu dữ liệuVí dụKiểu số nguyênsbyte, byte, short, ushort, int, uint, long,ulong, và charKiểu số thực dấu chấm độngfloat và doubleKiểu thập phândecimalKiểu Booleantrue hoặc falseKiểu NullableKiểu dữ liệu NullableCác ngôn ngữ cũng cho phép định nghĩa các kiểu giá trị khác của biến nhưkiểu enum và các kiểu tham chiếu của biến như class, tùy theo từng ngôn ngữ sẽ có các cáckhai báo khác nhau.Các kiểu giá trị cơ bản trong ngôn ngữ lập trình phổ biến có thể được phân chiathành:2. Biến trong ngôn ngữ C#2.1 Giới thiệu biến trong ngôn ngữ C#Biến là một tên được cung cấp cho khu vực lưu giữ mà chương trình có thể thao tác.Mỗi biến trong C# có một kiểu cụ thể, mà quyết định kích cỡ và cách bố trí bộ nhớ củabiến đó, cách dãy giá trị có thể được lưu giữ trong bộ nhớ đó, và cách tập hợp các hoạtđộng có thể được áp dụng tới biến đó.Cấu trúc của bộ nhớ bao gồm các ô nhớ liên tiếp nhau và trong mỗi ô nhớ có mộtđịa chỉ riêng, vì vậy khi sử dung chúng ta phải biết địa chỉ của chúng, điều này gây khókhăn rất nhiều đến việc lập trình chúng ta. Thay vào đó ta có thể sử dụng biến để thamchiếu đến vùng nhớ mà ta đặt chứ ko cần đến địa chỉ ô nhớ nữa.Vậy nên chúng ta sử dụng biến để thao tác với bộ nhớ một cách dễ dàng cũng nhưcó thể lưu dữ diệu và tái sử dụng lại chúng cho việc lập trình tiện lợi nhất có thể.2.2 Kiểu dữ liệu của biến trong C#Các kiểu giá trị cơ bản trong C# có thể được phân chia thành:Kiểu dữ liệuVí dụKiểu số nguyênsbyte, byte, short, ushort, int, uint, long,ulong, và charKiểu số thực dấu chấm độngfloat và doubleKiểu thập phândecimalKiểu Booleantrue hoặc falseKiểu NullableKiểu dữ liệu NullableC# cũng cho phép định nghĩa các kiểu giá trị khác của biến như kiểu enum và cáckiểu tham chiếu của biến như class, sẽ được bàn luận trong các chương tới.2.3 Khai báo biến trong C#Định nghĩa biến trong C#Cú pháp để định nghĩa biến trong C# là: ;Ở đây, kiểu_dữ_liệu phải là một kiểu dữ liệu hợp lệ trong C#, gồm: char, int, doublehoặc bất kỳ kiểu dữ liệu tự định nghĩa (user-defined) nào và danh_sách_biến có thể chứamột hoặc nhiều tên định danh được phân biệt bởi dấu phẩy.2.4 Một số trường hợp đặt biện của biến trong C#Dưới đây là một số định nghĩa biến hợp lệ trong C#:int i, j, k;char c, ch;float f, salary;double d;Bạn có thể khởi tạo một biến tại thời điểm định nghĩa, như sau:int i = 100;Khởi tạo biến trong C#Biến được khởi tạo (được gán một giá trị) với một dấu bằng được theo sau bởi mộtbiểu thức hằng. Form chung cho khởi tạo biến trong C# là:tên_biến = giá_trị;Các biến có thể được khởi tạo trong khai báo của chúng. Phần khởi tạo gồm mộtdấu bằng được theo sau bởi một biểu thức hằng, như sau: = giá_trị;Một số ví dụ về khởi tạo biến trong C# là:int d = 3, f = 5;/* khai báo và khởi tạo biến d và f. */byte z = 22;/* khai báo và khởi tạo biến z. */double pi = 3.14159; /* khai báo và khởi tạo biến pi */char x = ‘x’;/* khai báo và khởi tạo biến ký tự x. */Việc khởi tạo biến một cách chính xác là một bài thực hành tốt cho bạn, nếu khôngthì chương trình có thể tạo ra kết quả không mong đợi.Ví dụ sau sử dụng các kiểu biến đa dạng trong C#:using System;namespace Nhom2class TestCsharpstatic void Main(string[] args)Console.WriteLine(“Khai bao va khoi tao bien trong C#”);Console.WriteLine(“———————————-“);//khai bao bienshort a;int b;double c;/* khoi tao bien */a = 10;b = 20;c = a + b;Console.WriteLine(“a = {0}, b = {1}, c = {2}”, a, b, c);Console.ReadLine();Console.ReadKey();Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:Nhận giá trị từ người dùng trong C#Lớp Console trong System namespace cung cấp hàm ReadLine() để nhận đầu vàotừ người dùng (chẳng hạn nhập từ bàn phím) và lưu nó vào trong một biến.Ví dụ:int num;num = Convert.ToInt32(Console.ReadLine());Hàm Convert.ToInt32() chuyển đổi dữ liệu đã nhập bởi người dùng thành kiểu dữliệu int, bởi vì Console.ReadLine() chấp nhận dữ liệu trong định dạng chuỗi.Biểu thức lvalue và rvalue trong C#Có hai loại biểu thức trong C#:lvalue: Một biểu thức mà là một lvalue có thể xuất hiện hoặc bên trái hoặc bên phảicủa phép gán trong C#.rvalue: Một biểu thức mà là một rvalue có thể xuất hiện bên phải nhưng không thểở bên trái của một phép gán trong C#.Các biến là lvalue và vì thế chúng có thể xuất hiện ở bên trái của một phép gán. Cáchằng số là rvalue và vì thế chúng không thể được gán và không thể xuất hiện ở bên trái củamột phép gán. Sau đây là một lệnh hợp lệ trong C#:int g = 20;Nhưng lệnh sau là không hợp lệ và sẽ tạo một Compile-time error trong C#:10 = 20;Phạm vi hoạt động của biến là vùng đoạn mã mà từ đấy biến có thể được truy xuất.Trong một phạm vi hoạt động (scope), không thể có hai biến cùng mang một tên trùngnhau.Thí dụ ta không thể làm như sau :int x = 20;// một số câu lệnh ở đâyint x = 30;Xét ví dụ sau:10using System;namespace Nhom2public class ScopeTestpublic static int Main()for (int i = 0; i < 10; i++)Console.WriteLine(i);} // biến i ra khỏi phạm vi// Chúng ta có thể khai báo thêm biến i ở đâyfor (int i = 9; i >= 0; i–)Console.WriteLine(i);} // biến i ra khỏi phạm vi ở đâyreturn 0;Đoạn mã trên đơn giản in ra các số từ 0 đến 9, rồi lộn ngược lại từ 9 đến 0, sử dụngvòng lặp for.Chúng ta sẽ đề cập loại vòng lặp này. Điều quan trọng là ở đây chúng ta khaibáo biến i hai lần trong cùng một hàm ScopeTest.Chúng ta có thể làm được điều này vì iđược khai báo trong vòng lặp nghĩa là biến i cục bộ đối với vòng lặp.Một khi vòng lặphoàn thành nhiệm vụ thì biến thoát khỏi phạm vi, và không thể truy xuất được nữa.113. Biến trong ngôn ngữ Java3.1 Giới thiệu biến trong ngôn ngữ JavaMột biến của Java là tên gọi của một vùng nhớ bên trong máy tính dùng để lưu trữgiá trị mà chương trình của chúng ta có thể tương tác được. Giữa biến và kiểu dữ liệu cómột mối liên hệ mật thiết với nhau, một kiểu dữ liệu phải có một biến để lưu trữ nó.Mỗi biến trong Java bao gồm 3 phần sau: tên biến, kiểu dữ liệu và giá trị của biến đó.Tên biến là sự biểu diễn tượng trưng của vùng nhớ trong đó thông tin được lưu trữ.Kiểu dữ liệu dùng để xác định kích thước và loại giá trị có thể được lưu trữ.Giá trị là dữ liệu thực tế được lưu trữ trên biến và có thể thay đổi được.Trong Java, biến là tên của vùng nhớ. Có 3 kiểu biến trong java, bao gồm biến local(biến địa phương), biến instance (biến toàn cục) và biến static.3.2 Khai báo biến trong ngôn ngữ JavaCú pháp khai báo biến:DataType varName [ = value] [, varName2] [ = value2]…;Trong đó, DataType là kiểu dữ liệu của biến, varName là tên biến.Quy tắc đặt tên biến trong java:12Chỉ được bắt đầu bằng một ký tự(chữ), hoặc một dấu gạch dưới(_), hoặc một ký tựdollar($)Tên biến không được chứa khoảng trắngBắt đầu từ ký tự thứ hai, có thể dùng ký tự(chữ), dấu gạch dưới(_), hoặc ký tựdollar($)Không được trùng với các từ khóaCó phân biệt chữ hoa và chữ thườngVí dụ về khai báo biến trong java:package vn.viettuts.bienvadulieu;public class Bien {public static float PI = 3.14f; // Đây là biến staticint n;// Đây là biến instancepublic Bien () {char c = ‘c’;// Đây là biến local3.3 Kiểu dữ liệu của biến trong ngôn ngữ JavaKiểu dữ liệuGiá trị mặc địnhKích cỡ mặc địnhbooleanfalse1 bitchar’\u0000’4 bytebyte1 byte13Kiểu dữ liệuGiá trị mặc địnhKích cỡ mặc địnhshort2 byteint4 bytelong0L8 bytefloat0.0f4 bytedouble0.0d8 byte3.4 Các loại biến trong Java3.4.1 Biến local trong JavaBiến local được khai báo trong các phương thức, hàm contructor hoặc trong cácblock.Biến local được tạo bên trong các phương thức, contructor, block và sẽ bị phá hủykhi kết thúc các phương thức, contructor và block.Không được sử dụng “access modifier” khi khai báo biến local.Các biến local được lưu trên vùng nhớ stack của bộ nhớ.Bạn cần khởi tạo giá trị mặc định cho biến local trước khi có thể sử dụng.Ví dụ 1: Khởi tạo biến local:public class Bien {public void sayHello() {int n = 10;// Đây là biến localSystem.out.println(“Gia tri cua n la: ” + n);14public static void main(String[] args) {Bien bienLocal = new Bien();bienLocal.sayHello();Kết quả:Gia tri cua n la: 10Ví dụ 2: Không khởi tạo biến local:public class Bien {public void sayHello() {int n;// Đây là biến localSystem.out.println(“Gia tri cua n la: ” + n);public static void main(String[] args) {Bien bienLocal = new Bien();bienLocal.sayHello();Kết quả:Exception in thread “main” java.lang.Error: Unresolved compilation problem:The local variable n may not have been initializedKhi không khởi tạo biến local, chương trình java sẽ báo lỗi khi biên dịch.3.4.2 Biến biến instance (biến toàn cục) trong javaBiến instance được khai báo trong một lớp(class), bên ngoài các phương thức,constructor và các block.Biến instance được lưu trong bộ nhớ heap.15Biến instance được tạo khi một đối tượng được tạo bằng việc sử dụng từ khóa “new”và sẽ bị phá hủy khi đối tượng bị phá hủy.Biến instance có thể được sử dụng bởi các phương thức, constructor, block, …Nhưng nó phải được sử dụng thông qua một đối tượng cụ thể.Bạn được phép sử dụng “access modifier” khi khai báo biến instance, mặc định là“default”.Biến instance có giá trị mặc định phụ thuộc vào kiểu dữ liệu của nó. Ví dụ nếu làkiểu int, short, byte thì giá trị mặc định là 0, kiểu double thì là 0.0d, … Vì vậy, bạnsẽ không cần khởi tạo giá trị cho biến instance trước khi sử dụng.Bên trong class mà bạn khai báo biến instance, bạn có thể gọi nó trực tiếp bằng tênkhi sử dụng ở khắp nới bên trong class đó.Ví dụ về biến instance trong java:public class Sinhvien {// biến instance “ten” kiểu String, có giá trị mặc định là nullpublic String ten;// biến instance “tuoi” kiểu Integer, có giá trị mặc định là 0private int tuoi;// sử dụng biến ten trong một constructorpublic Sinhvien(String ten) {this.ten = ten;// sử dụng biến tuoi trong phương thức setTuoipublic void setTuoi(int tuoi) {this.tuoi = tuoi;public void showStudent() {System.out.println(“Ten : ” + ten);System.out.println(“Tuoi : ” + tuoi);16public static void main(String args[]) {Sinhvien sv = new Sinhvien(“Nguyen Van A”);sv.setTuoi(21);sv.showStudent();Kết quả:Ten : Nguyen Van ATuoi : 213.4.3 Biến static trong javaBiến static được khai báo trong một class với từ khóa “static”, phía bên ngoài cácphương thức, constructor và block.Sẽ chỉ có duy nhất một bản sao của các biến static được tạo ra, dù bạn tạo bao nhiêuđối tượng từ lớp tương ứng.Biến static được lưu trữ trong bộ nhớ static riêng.Biến static được tạo khi chương trình bắt đầu chạy và chỉ bị phá hủy khi chươngtrình dừng.Giá trị mặc định của biến static phụ thuộc vào kiểu dữ liệu bạn khai báo tương tựbiến instance.Biến static được truy cập thông qua tên của class chứa nó, với cú pháp:TenClass.tenBien.Trong class, các phương thức sử dụng biến static bằng cách gọi tên của nó khiphương thức đó cũng được khai báo với từ khóa “static”.Ví dụ về biến static trong java:public class Sinhvien {// biến static ‘ten’public static String ten = “Nguyen Van A”;// biến static ‘tuoi’public static int tuoi = 21;public static void main(String args[]) {17// Sử dụng biến static bằng cách gọi trực tiếpSystem.out.println(“Ten : ” + ten);// Sử dụng biến static bằng cách gọi thông qua tên classSystem.out.println(“Ten : ” + Sinhvien.tuoi);Kết quả:Ten : Nguyen Van ATen : 214. Biến trong ngôn ngữ C++4.1 Giới thiệu biến trong ngôn ngữ C++Biến dùng để lưu trữ một giá trị nào đó. Bạn cứ tưởng tượng rằng giả sử bạn có mộtcái bao và bạn có thể sử dụng cái bao đó với nhiều mục đích khác nhau như dùng để chứagạo, chưa ngô, chứa khoai, … thì lúc này cái bao đó được ví như là một biến trong C++.Đó là ví dụ trong thực tế còn trong lập trình thì biến sẽ được lưu trữ tại một vị trínào đó trong bộ nhớ của máy tính, sau đó khi muốn sử biến nào thì hệ thống sẽ tìm trongbộ nhớ xem có tồn tại biến đó không? Nếu tồn tại thì sử dụng bình thường, ngược lại thìchương trình sẽ bị lỗi vì bạn đã sử dụng một biến chưa được khởi tạo.4.2 Khai báo biến trong ngôn ngữ C++Vì chúng ta chưa học các kiểu dữ liệu trong C++ nên nếu bạn không hiểu các ví dụdưới đây thì hãy đọc sơ lược bài tiếp theo rồi quay lại bài này nhé.Để khai báo biến trong C++ thì ta sử dụng cú pháp sau: < ten_bien>;Ví dụ: Khai báo biến kiểu number (tức là kiểu int, int là viết tắt của interger)int namsinh;18Để gán giá trị cho biến thì ta sử dụng toán tử gán =.Ví dụ: Gán giá trị 1990 cho biến namsinh.int namsinh;namsinh = 1990;Ngoài ra ta cũng có thể gán giá trị cho biến ngay lúc khởi tạo. Với ví dụ trên thì taviết lại như sau:int namsinh = 1990;Biến cục bộ trong C++Các biến được khai báo bên trong một hàm hoặc khối là các biến cục bộ (local).Chúng chỉ có thể được sử dụng bởi các lệnh bên trong hàm hoặc khối code đó. Các biếncục bộ không được biết ở bên ngoài hàm đó (tức là chỉ được sử dụng bên trong hàm hoặckhối code đó). Dưới đây là ví dụ sử dụng các biến cục bộ:#include using namespace std;int main ()// phan khai bao bien cuc bo:int a, b;int c;// phan khoi tao biena = 10;b = 20;c = a + b;19cout << c;return 0;Biến toàn cục trong C++Biến toàn cục (global) trong C++ được định nghĩa bên ngoài các hàm, thường ởphần đầu chương trình. Các biến toàn cục giữ giá trị của nó trong suốt vòng đời chươngtrình của bạn.Một biến toàn cục có thể được truy cập bởi bất kỳ hàm nào. Tức là, một biến toàncục là có sẵn cho bạn sử dụng trong toàn bộ chương trình sau khi đã khai báo nó. Dướiđây là ví dụ sử dụng biến toàn cục và biến nội bộ trong C++:#include using namespace std;// phan khai bao bien toan cuc:int g;int main ()// phan khai bao bien cuc bo:int a, b;// phan khoi tao biena = 10;b = 20;20g = a + b;cout << g;return 0;Một chương trình có thể có các biến toàn cục và biến cục bộ cùng tên với nhau, nhưngtrong một hàm thì giá trị của biến cục bộ sẽ được ưu tiên. Ví dụ:#include using namespace std;// phan khai bao bien toan cuc:int g = 20;int main ()// phan khai bao bien cuc bo:int g = 10;cout << g;return 0;Khi code trên được biên dịch và thực thi, nó cho kết quả sau:10Khởi tạo biến cục bộ và biến toàn cục bởi hệ thống trong C++21Khi một biến cục bộ được định nghĩa, nó không được khởi tạo bởi hệ thống, chính bạn phảikhởi tạo nó. Các biến toàn cục được khởi tạo tự động bởi hệ thống khi bạn định nghĩachúng, như sau:Kiểu dữ liệuGiá trị khởi tạointchar’\0’floatdoublepointerNULL4.3 Kiểu dữ liệu trong C++Tên tiếng Anh là Primitive Type, còn có thể gọi là kiểu dữ liệu gốc, kiểu dữ liệu cósẵn trong C/C++. Bên cạnh các kiểu dữ liệu gốc này, C/C++ cũng cung cấp các kiểu dữliệu user-defined. Bảng dưới đây liệt kê 7 kiểu dữ liệu cơ bản trong C/C++:Kiểu dữ liệuTừ khóaBooleanboolKý tựcharSố nguyênint22Số thựcfloatSố thực dạng DoubledoubleKiểu không có giá trịvoidKiểu Wide characterwchar_t5. Biến trong ngôn ngữ Javascript5.1 Giới thiệu biến trong JSGiống như nhiều ngôn ngữ chương trình khác, JavaScript có các biến. Biến có thểđược xem là một nơi chứa (container) được đặt tên. Bạn có thể đặt dữ liệu vào trong nơichứa này và sau đó tham chiếu đến dữ liệu này một cách đơn giản là đặt tên cho nơi chứa.JavaScript là ngôn ngữ untyped (không định kiểu). Nghĩa là một biến JavaScript cóthể giữ một giá trị của bất kỳ kiểu dữ liệu nào. Không giống nhiều ngôn ngữ khác, bạnkhông phải nói cho JavaScript trong suốt quá trình khai báo biến về kiểu giá trị mà biến đógiữ. Kiểu giá trị của biến có thể thay đổi trong suốt quá trình thực thi một chương trình vàJavaScript chăm sóc nó một cách tự động.5.2 Khai báo biến trong JavaScriptĐể khai báo một biến ta sử dụng từ khóa: + Vd: var a;Ngoài cách khai báo như trên ta còn có cách khai báo nhiều biến cùng một lúc bằngcách viết chúng liên tiếp với nhau và cách nhau bởi dấu phẩy.Vd: var a, b, c;5.2.1 Gán giá trị cho biếnĐể gán giá trị cho biến ta dùng dấu bằng (=)23Vd: var a = 1;5.2.2 Gán kiểu giá trị cho biếnTrong Javascript rất hạn chế về kiểu dữ liệu nhưng bù lại cơ chế xử lý kiểu dữ liệucủa nó rất linh hoạt giúp lập trình viên có thể chuyển đổi một cách dễ dàng, bởi mọi kiểudữ liệu đều có thể quy về đối tượng và mỗi đối tượng ta có thể bổ sung các phương thứcxử lý riêng.Vd:var a = 1.0; // sốvar ten = “An”; // chuỗivar b = true; // BooleanNếu không gán giá trị, kiểu dữ liệu sẽ là undefined5.3 Một số toán tử, kết hợp toán tử trong JavaScriptMột số toán tử + – * / % == <= >= < > …Ta có thể kết hợp việc sử dụng toán tử + và = như sau:var a = 1 + 2 + 3; // 6var a = “xin” + ” ” + “chao”; // xin chaovar a = “Ta” + 1; // Ta15.4 Quy tắc đặt tên biếnTrong JavaScript, ta phải tuân theo quy tắc sau đây- Tên biến phải là các chữ không dấu viết hoa hoặc viết thường, các chữ số từ 0-9và dấu gạch dưới- Tên biến bắt đầu phải là chữ hoặc dấu gạch dưới _ hoặc dấu $- Có phân biệt chữ hoa – thường- Không được trùng lặp với từ khóa: function, while, for,…Phạm vi, thời gian tồn tại của biến trong JavaScript:Trong JavaScript, biển cục bộ được khai báo trong hàm hoặc trong một khối (thôngqua từ khóa let) – chỉ tồn tại trong hàm hoặc một khối hàm đó24Đối với biến toàn cục: biến được tạo ra trong thân chương trình – tồn tại trong suốtquá trình thực hiện chương trình5.5 Một số vấn đề khác trong JavaScriptPhá vỡ chuỗi trong JavaScriptĐối với JavaScript, khi khai báo một chuỗi chứa dấu xuống dòng sẽ không được chấp nhận:Vd:var x = “xinchao”;Tuy nhiên, ta có thể khắc phục như sau:Vd:varchao”;=“xinBiến cũng có thể được lưu bằng mảng, cú pháp như sau:var tên_mảng = new Array()VD: var a = new Array()a[0] = 10;a[1] = 5;6. Biến trong ngôn ngữ GoLang6.1 Giới thiệu biến trong ngôn ngữ GoLangNgôn ngữ lập trình Go là ngôn ngữ nguồn mở của Google, giúp chúng ta dễ dàngtạo được phần mềm đơn giản, ổn định và hiệu quả. Go là một phần trong dòng ngôn ngữlập trình của nhóm Communicationg Sequential Processes của Tony Hoare đưa ra, ngoàiGo còn có Occam, Erlang, Newsqueak và Limbo. Go có một tính nặng hữu dụng hơn hầuhết những ngôn ngữ lập trình cơ bản đó là concurrency.6.2 Khai báo biến trong GoBiến được khai báo sử dụng từ khoá var và theo sau là kiểu dữ liệu:Cú pháp khai báo: var tên_biến kiểu_dữ_liệu25