Java là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay với rất nhiều ứng dụng trên khắp thế giới. Trong bài học này, chúng ta sẽ tìm hiểu về quy tắc đặt tên, kiểu dữ liệu và ép kiểu, toán tử, cấu trúc điều khiển và rẽ nhánh. Việc hiểu và sử dụng thành thạo các khái niệm này sẽ giúp bạn trở thành một lập trình viên Java giỏi. Hãy bắt đầu học các khái niệm này ngay bây giờ!
Quy tắc đặt tên
Trong Java, việc đặt tên cho biến, hằng, phương thức và lớp rất quan trọng và ảnh hưởng đến tính đồng nhất và dễ đọc của mã. Dưới đây là các quy tắc đặt tên cơ bản trong Java:
- Tên các biến và phương thức nên được bắt đầu bằng một chữ cái viết thường, và sau đó là các chữ cái tiếp theo viết hoa, không sử dụng khoảng trắng.
1 2 3 4 5 6 7 | <span class="token comment">// Khai báo biến đúng quy tắc đặt tên</span> <span class="token keyword">int</span> myVariable<span class="token punctuation">;</span> <span class="token class-name">String</span> <span class="token function">myMethod</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Khai báo biến sai quy tắc đặt tên</span> <span class="token keyword">int</span> <span class="token class-name">My</span> <span class="token class-name">Variable</span><span class="token punctuation">;</span> <span class="token comment">// có khoảng trắng</span> <span class="token class-name">String</span> <span class="token number">1</span>stMethod<span class="token punctuation">;</span> <span class="token comment">// bắt đầu bằng số</span> |
- Tên lớp nên được bắt đầu bằng một chữ cái viết hoa và nên sử dụng kiểu đặt tên CamelCase (tức là, các từ tiếp theo sẽ được viết hoa).
1 2 3 4 5 6 7 8 9 10 | <span class="token comment">// Khai báo lớp đúng quy tắc đặt tên</span> <span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">MyClass</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo lớp sai quy tắc đặt tên</span> <span class="token keyword">public</span> <span class="token keyword">class</span> my_class <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> |
- Tên hằng số nên được viết hoa toàn bộ và các từ cách nhau bằng dấu gạch dưới (_).
1 2 3 4 5 6 7 | <span class="token comment">// Khai báo hằng số đúng quy tắc đặt tên</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token keyword">int</span> MAX_VALUE <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">;</span> <span class="token comment">// Khai báo hằng số sai quy tắc đặt tên</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token keyword">int</span> maxValue <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">;</span> <span class="token comment">// không viết hoa toàn bộ</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token keyword">int</span> MAXVALUE <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">;</span> <span class="token comment">// không sử dụng dấu gạch dưới</span> |
- Tên gói (package) nên được viết bằng chữ thường, các từ cách nhau bằng dấu chấm.
1 2 3 4 5 6 7 8 9 10 | <span class="token comment">// Khai báo package đúng quy tắc đặt tên</span> <span class="token keyword">package</span> <span class="token namespace">com<span class="token punctuation">.</span>example<span class="token punctuation">.</span>myproject</span><span class="token punctuation">;</span> <span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">MyClass</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo package sai quy tắc đặt tên</span> <span class="token keyword">package</span> <span class="token namespace">com<span class="token punctuation">.</span>example<span class="token punctuation">.</span></span><span class="token class-name">MyProject</span><span class="token punctuation">;</span> <span class="token comment">// viết hoa chữ cái</span> |
- Tên các biến, phương thức, lớp và hằng số nên được đặt một cách có ý nghĩa và mô tả được nội dung.
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 26 27 28 29 30 31 32 | <span class="token comment">// Khai báo biến có tên không rõ ràng</span> <span class="token keyword">int</span> x <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token comment">// Khai báo biến có tên rõ ràng</span> <span class="token keyword">int</span> numberOfStudents <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token comment">// Khai báo phương thức có tên không rõ ràng</span> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">doSomething</span><span class="token punctuation">(</span><span class="token keyword">int</span> a<span class="token punctuation">,</span> <span class="token keyword">int</span> b<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo phương thức có tên rõ ràng</span> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">calculateSum</span><span class="token punctuation">(</span><span class="token keyword">int</span> firstNumber<span class="token punctuation">,</span> <span class="token keyword">int</span> secondNumber<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo lớp có tên không rõ ràng</span> <span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">MyClass</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo lớp có tên rõ ràng</span> <span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Student</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo hằng số có tên không rõ ràng</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token keyword">int</span> MAX <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">;</span> <span class="token comment">// Khai báo hằng số có tên rõ ràng</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token keyword">int</span> MAX_STUDENTS <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">;</span> |
- Tránh sử dụng các từ khóa (keywords) của Java làm tên biến, phương thức, lớp hoặc hằng số.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <span class="token comment">// Khai báo biến sử dụng từ khóa của Java làm tên biến</span> <span class="token keyword">int</span> <span class="token keyword">int</span> <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token comment">// Khai báo phương thức sử dụng từ khóa của Java làm tên phương thức</span> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token keyword">public</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo lớp sử dụng từ khóa của Java làm tên lớp</span> <span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">String</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo hằng số sử dụng từ khóa của Java làm tên hằng số</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token keyword">int</span> <span class="token keyword">final</span> <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">;</span> |
- Tránh sử dụng các ký tự đặc biệt như @, $, # trong tên biến, phương thức, lớp hoặc hằng số.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <span class="token comment">// Khai báo biến sử dụng ký tự đặc biệt trong tên biến</span> <span class="token keyword">int</span> my<span class="token annotation punctuation">@variable</span> <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token comment">// Khai báo phương thức sử dụng ký tự đặc biệt trong tên phương thức</span> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token keyword">do</span>$<span class="token function">something</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo lớp sử dụng ký tự đặc biệt trong tên lớp</span> <span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">My</span>#<span class="token class-name">Class</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo hằng số sử dụng ký tự đặc biệt trong tên hằng số</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token keyword">int</span> MY$CONSTANT <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">;</span> |
- Sử dụng tiếng Anh khi đặt tên biến, phương thức, lớp hoặc hằng số.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <span class="token comment">// Khai báo biến sử dụng tiếng Anh trong tên biến</span> <span class="token keyword">int</span> numberOfStudents <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token comment">// Khai báo phương thức sử dụng tiếng Anh trong tên phương thức</span> <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">calculateSum</span><span class="token punctuation">(</span><span class="token keyword">int</span> firstNumber<span class="token punctuation">,</span> <span class="token keyword">int</span> secondNumber<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo lớp sử dụng tiếng Anh trong tên lớp</span> <span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Student</span> <span class="token punctuation">{</span> <span class="token comment">// code</span> <span class="token punctuation">}</span> <span class="token comment">// Khai báo hằng số sử dụng tiếng Anh trong tên hằng số</span> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token keyword">int</span> MAX_STUDENTS <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">;</span> |
- Các tên phải có độ dài hợp lý, không quá ngắn hoặc quá dài.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // Tên biến quá ngắn, không mô tả được nội dung int x = 5; // Tên phương thức quá dài, làm cho mã khó đọc public void calculateSumOfTwoNumbersAndPrintResultOnConsole(int firstNumber, int secondNumber) { // code } // Tên lớp quá ngắn, không mô tả được nội dung public class A { // code } // Tên hằng số quá dài, làm cho mã khó đọc public static final int MAXIMUM_NUMBER_OF_STUDENTS_THAT_CAN_BE_ENROLLED_IN_A_SCHOOL = 1000; |
Những quy tắc đặt tên này giúp cho mã của bạn trở nên dễ đọc và hiểu hơn, đồng thời cũng giúp cho mã của bạn đáp ứng các tiêu chuẩn lập trình Java.
Các kiểu dữ liệu và ép kiểu
Java là một ngôn ngữ lập trình có kiểu dữ liệu tĩnh, có nghĩa là bạn phải khai báo kiểu dữ liệu cho các biến trước khi sử dụng chúng.
- Dữ liệu nguyên thuỷ (primitive data types)
Có 8 kiểu dữ liệu nguyên thuỷ, được liệt kê trong bảng sau:
Kiểu dữ liệu | Size (bits) | Phạm vi | Giá trị mặc định |
---|---|---|---|
byte | 8 | -128 đến 127 | 0 |
short | 16 | -32,768 đến 32,767 | 0 |
int | 32 | -2,147,483,648 đến 2,147,483,647 | 0 |
long | 64 | -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807 | 0L |
float | 32 | 1.4E-45 đến 3.4028235E38 | 0.0f |
double | 64 | 4.9E-324 đến 1.7976931348623157E308 | 0.0d |
char | 16 | 0 đến 65,535 | ‘u0000’ |
boolean | 1 | true hoặc false |
- Wrapper Class
Wrapper Class là các lớp lớp đối tượng trong Java được sử dụng để biểu diễn các kiểu dữ liệu nguyên thủy (primitive data types) dưới dạng đối tượng. Các wrapper class cung cấp các phương thức để thao tác với các giá trị của kiểu dữ liệu nguyên thủy và chuyển đổi giữa các kiểu dữ liệu nguyên thủy khác nhau. Các wrapper class cũng được sử dụng trong các Collection Framework của Java, vì các collection framework chỉ làm việc với các đối tượng, không làm việc trực tiếp với các kiểu dữ liệu nguyên thủy.
Các wrapper class tương ứng với các kiểu dữ liệu nguyên thủy trong Java như sau:
Kiểu nguyên thủy | Wrapper class |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
Dưới đây là một số ví dụ về các wrapper class trong Java:
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 | <span class="token comment">// Chuyển một chuỗi thành số nguyên sử dụng Integer.parseInt()</span> <span class="token class-name">String</span> numStr <span class="token operator">=</span> <span class="token string">"123"</span><span class="token punctuation">;</span> <span class="token keyword">int</span> num <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">parseInt</span><span class="token punctuation">(</span>numStr<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>num<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Output: 123</span> <span class="token comment">// Chuyển một số nguyên thành chuỗi sử dụng Integer.toString()</span> <span class="token keyword">int</span> value <span class="token operator">=</span> <span class="token number">42</span><span class="token punctuation">;</span> <span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Output: "42"</span> <span class="token comment">// Kiểm tra xem một chuỗi có đại diện cho giá trị boolean hợp lệ không sử dụng Boolean.parseBoolean()</span> <span class="token class-name">String</span> boolStr <span class="token operator">=</span> <span class="token string">"true"</span><span class="token punctuation">;</span> <span class="token keyword">boolean</span> bool <span class="token operator">=</span> <span class="token class-name">Boolean</span><span class="token punctuation">.</span><span class="token function">parseBoolean</span><span class="token punctuation">(</span>boolStr<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>bool<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Output: true</span> <span class="token comment">// Chuyển một ký tự thành chuỗi sử dụng Character.toString()</span> <span class="token keyword">char</span> ch <span class="token operator">=</span> <span class="token string">'a'</span><span class="token punctuation">;</span> <span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token class-name">Character</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span>ch<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Output: "a"</span> <span class="token comment">// Chuyển một chuỗi thành mảng ký tự sử dụng String.toCharArray()</span> <span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">"hello"</span><span class="token punctuation">;</span> <span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> str<span class="token punctuation">.</span><span class="token function">toCharArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>chars<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Output: "hello"</span> |
- Ép kiểu (Casting)
Ép kiểu (Casting) là quá trình chuyển đổi giữa các kiểu dữ liệu khác nhau trong Java. Việc ép kiểu có thể được thực hiện bằng cách sử dụng toán tử đúng kiểu hoặc bằng cách sử dụng các phương thức chuyển đổi của các wrapper class. Có hai loại ép kiểu trong Java:
- Ép kiểu ngầm định (Implicit Casting): là quá trình chuyển đổi giá trị của kiểu dữ liệu có độ lớn nhỏ hơn sang kiểu dữ liệu có độ lớn lớn hơn mà không cần sử dụng toán tử đúng kiểu. Ví dụ:
1 2 3 4 | <span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token keyword">double</span> d <span class="token operator">=</span> i<span class="token punctuation">;</span> <span class="token comment">// Ép kiểu ngầm định</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>d<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Output: 10.0</span> |
- Ép kiểu tường minh (Explicit Casting): là quá trình chuyển đổi giá trị của kiểu dữ liệu có độ lớn lớn hơn sang kiểu dữ liệu có độ lớn nhỏ hơn. Trong quá trình này, ta cần sử dụng toán tử đúng kiểu để thực hiện việc ép kiểu. Ví dụ:
1 2 3 4 | <span class="token keyword">double</span> d <span class="token operator">=</span> <span class="token number">10.5</span><span class="token punctuation">;</span> <span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">)</span> d<span class="token punctuation">;</span> <span class="token comment">// Ép kiểu tường minh</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Output: 10</span> |
Cần lưu ý rằng khi ép kiểu tường minh, giá trị của biến có thể bị mất mát nếu giá trị đó vượt quá phạm vi của kiểu dữ liệu đích.
Các toán tử
Trong Java, có nhiều loại toán tử để thực hiện các phép tính và các phép so sánh. Các toán tử này có thể được chia thành các nhóm như sau:
- Toán tử số học: được sử dụng để thực hiện các phép tính số học, bao gồm cộng (+), trừ (-), nhân (*), chia (/), chia lấy dư (%), tăng (++), giảm (–), và các phép tính liên quan khác.
Ví dụ:
1 2 3 4 5 6 7 8 9 | <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">,</span> b <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token keyword">int</span> sum <span class="token operator">=</span> a <span class="token operator">+</span> b<span class="token punctuation">;</span> <span class="token comment">// sum = 15</span> <span class="token keyword">int</span> difference <span class="token operator">=</span> a <span class="token operator">-</span> b<span class="token punctuation">;</span> <span class="token comment">// difference = 5</span> <span class="token keyword">int</span> product <span class="token operator">=</span> a <span class="token operator">*</span> b<span class="token punctuation">;</span> <span class="token comment">// product = 50</span> <span class="token keyword">int</span> quotient <span class="token operator">=</span> a <span class="token operator">/</span> b<span class="token punctuation">;</span> <span class="token comment">// quotient = 2</span> <span class="token keyword">int</span> remainder <span class="token operator">=</span> a <span class="token operator">%</span> b<span class="token punctuation">;</span> <span class="token comment">// remainder = 0</span> <span class="token keyword">int</span> increment <span class="token operator">=</span> <span class="token operator">++</span>a<span class="token punctuation">;</span> <span class="token comment">// increment = 11, a = 11</span> <span class="token keyword">int</span> decrement <span class="token operator">=</span> <span class="token operator">--</span>b<span class="token punctuation">;</span> <span class="token comment">// decrement = 4, b = 4</span> |
- Toán tử gán: được sử dụng để gán giá trị cho một biến hoặc một biểu thức, bao gồm toán tử gán đơn (=) và các toán tử gán kết hợp với các toán tử số học khác.
Ví dụ:
1 2 3 4 5 6 7 | <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span> a <span class="token operator">+=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token comment">// a = 15</span> a <span class="token operator">-=</span> <span class="token number">3</span><span class="token punctuation">;</span> <span class="token comment">// a = 12</span> a <span class="token operator">*=</span> <span class="token number">2</span><span class="token punctuation">;</span> <span class="token comment">// a = 24</span> a <span class="token operator">/=</span> <span class="token number">3</span><span class="token punctuation">;</span> <span class="token comment">// a = 8</span> a <span class="token operator">%=</span> <span class="token number">3</span><span class="token punctuation">;</span> <span class="token comment">// a = 2</span> |
- Toán tử logic: được sử dụng để thực hiện các phép tính logic, bao gồm phép AND (&&), phép OR (||), phép NOT (!), và các phép tính liên quan khác.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # <span class="token class-name">Ph</span>ép AND <span class="token punctuation">(</span><span class="token operator">&&</span><span class="token punctuation">)</span><span class="token operator">:</span> kết quả trả về <span class="token boolean">true</span> nếu cả hai biểu thức đều là <span class="token boolean">true</span><span class="token punctuation">,</span> ngược lại sẽ trả về <span class="token boolean">false</span><span class="token punctuation">.</span> <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token keyword">int</span> b <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>a <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">&&</span> b <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// Do something</span> <span class="token punctuation">}</span> # <span class="token class-name">Ph</span>ép OR <span class="token punctuation">(</span><span class="token operator">||</span><span class="token punctuation">)</span><span class="token operator">:</span> kết quả trả về <span class="token boolean">true</span> nếu ít nhất một trong hai biểu thức là <span class="token boolean">true</span><span class="token punctuation">,</span> ngược lại sẽ trả về <span class="token boolean">false</span><span class="token punctuation">.</span> <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token keyword">int</span> b <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>a <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">||</span> b <span class="token operator"><</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// Do something</span> <span class="token punctuation">}</span> # <span class="token class-name">Ph</span>ép NOT <span class="token punctuation">(</span><span class="token operator">!</span><span class="token punctuation">)</span><span class="token operator">:</span> kết quả trả về là <span class="token boolean">true</span> nếu biểu thức đang xét là <span class="token boolean">false</span> và ngược lại<span class="token punctuation">.</span> <span class="token keyword">boolean</span> flag <span class="token operator">=</span> <span class="token boolean">false</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>flag<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// Do something</span> <span class="token punctuation">}</span> |
- Toán tử so sánh: được sử dụng để so sánh giá trị của hai biến hoặc biểu thức, bao gồm các phép so sánh bằng (==), khác (!=), lớn hơn (>), nhỏ hơn (<), lớn hơn hoặc bằng (>=), và nhỏ hơn hoặc bằng (<=).
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 | <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token keyword">int</span> b <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token keyword">boolean</span> result<span class="token punctuation">;</span> result <span class="token operator">=</span> <span class="token punctuation">(</span>a <span class="token operator">==</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// false</span> result <span class="token operator">=</span> <span class="token punctuation">(</span>a <span class="token operator">!=</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// true</span> result <span class="token operator">=</span> <span class="token punctuation">(</span>a <span class="token operator">></span> b<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// false</span> result <span class="token operator">=</span> <span class="token punctuation">(</span>a <span class="token operator"><</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// true</span> result <span class="token operator">=</span> <span class="token punctuation">(</span>a <span class="token operator">>=</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// false</span> result <span class="token operator">=</span> <span class="token punctuation">(</span>a <span class="token operator"><=</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// true</span> |
- Toán tử bitwise: được sử dụng để thực hiện các phép tính bitwise trên các số nguyên, bao gồm phép AND (&), phép OR (|), phép XOR (^), phép NOT (~), và các phép tính liên quan khác.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #<span class="token class-name">Ph</span>ép AND <span class="token punctuation">(</span><span class="token operator">&</span><span class="token punctuation">)</span> <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token comment">// binary: 0101</span> <span class="token keyword">int</span> b <span class="token operator">=</span> <span class="token number">3</span><span class="token punctuation">;</span> <span class="token comment">// binary: 0011</span> <span class="token keyword">int</span> result <span class="token operator">=</span> a <span class="token operator">&</span> b<span class="token punctuation">;</span> <span class="token comment">// binary: 0001 (decimal: 1)</span> #<span class="token class-name">Ph</span>ép OR <span class="token punctuation">(</span><span class="token operator">|</span><span class="token punctuation">)</span> <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token comment">// binary: 0101</span> <span class="token keyword">int</span> b <span class="token operator">=</span> <span class="token number">3</span><span class="token punctuation">;</span> <span class="token comment">// binary: 0011</span> <span class="token keyword">int</span> result <span class="token operator">=</span> a <span class="token operator">|</span> b<span class="token punctuation">;</span> <span class="token comment">// binary: 0111 (decimal: 7)</span> #<span class="token class-name">Ph</span>ép XOR <span class="token punctuation">(</span><span class="token operator">^</span><span class="token punctuation">)</span> <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token comment">// binary: 0101</span> <span class="token keyword">int</span> b <span class="token operator">=</span> <span class="token number">3</span><span class="token punctuation">;</span> <span class="token comment">// binary: 0011</span> <span class="token keyword">int</span> result <span class="token operator">=</span> a <span class="token operator">^</span> b<span class="token punctuation">;</span> <span class="token comment">// binary: 0110 (decimal: 6)</span> #<span class="token class-name">Ph</span>ép NOT <span class="token punctuation">(</span><span class="token operator">~</span><span class="token punctuation">)</span> <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">;</span> <span class="token comment">// binary: 0101</span> <span class="token keyword">int</span> result <span class="token operator">=</span> <span class="token operator">~</span>a<span class="token punctuation">;</span> <span class="token comment">// binary: 1010 (decimal: -6)</span> |
- Toán tử di chuyển bit: được sử dụng để di chuyển các bit trong một số nguyên, bao gồm toán tử dịch trái (<<), toán tử dịch phải có dấu (>>), và toán tử dịch phải không dấu (>>>).
Ví dụ:
1 2 3 4 5 | <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token comment">// binary: 1010</span> <span class="token keyword">int</span> b <span class="token operator">=</span> a <span class="token operator"><<</span> <span class="token number">2</span><span class="token punctuation">;</span> <span class="token comment">// binary: 101000 (decimal: 40)</span> <span class="token keyword">int</span> c <span class="token operator">=</span> a <span class="token operator">>></span> <span class="token number">2</span><span class="token punctuation">;</span> <span class="token comment">// binary: 10 (decimal: 2)</span> <span class="token keyword">int</span> d <span class="token operator">=</span> a <span class="token operator">>>></span> <span class="token number">2</span><span class="token punctuation">;</span> <span class="token comment">// binary: 10 (decimal: 2)</span> |
Cấu trúc điều khiển và rẽ nhánh
Trong Java, cấu trúc điều khiển và rẽ nhánh được sử dụng để thực hiện các phép kiểm tra và quyết định trong chương trình. Các cấu trúc này cho phép chương trình thực hiện các lệnh khác nhau tùy thuộc vào các điều kiện được xác định.
Có hai loại cấu trúc điều khiển trong Java: cấu trúc điều khiển rẽ nhánh (branching control structure) và cấu trúc điều khiển vòng lặp (looping control structure).
- Cấu trúc điều khiển rẽ nhánh bao gồm:
- If statement: sử dụng để kiểm tra một điều kiện và thực hiện các lệnh khác nhau tùy thuộc vào kết quả của điều kiện đó.
- If-else statement: cũng giống như If statement, nhưng nó có thêm một khối lệnh thực hiện khi điều kiện không đúng.
- Switch statement: sử dụng để kiểm tra một biến hoặc một biểu thức và thực hiện các lệnh khác nhau tùy thuộc vào giá trị của biến đó.
Ví dụ về cấu trúc điều khiển rẽ nhánh:
1 2 3 4 5 6 7 8 9 10 | <span class="token keyword">int</span> age <span class="token operator">=</span> <span class="token number">20</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>age <span class="token operator"><</span> <span class="token number">18</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Bạn chưa đủ tuổi để xem nội dung này."</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>age <span class="token operator">>=</span> <span class="token number">18</span> <span class="token operator">&&</span> age <span class="token operator"><</span> <span class="token number">21</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Bạn có thể xem nội dung này nhưng không được uống rượu bia."</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Bạn có thể xem nội dung này và được uống rượu bia."</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> |
- Cấu trúc điều khiển vòng lặp bao gồm:
- For loop: sử dụng để lặp lại một khối lệnh một số lần nhất định.
- While loop: sử dụng để lặp lại một khối lệnh trong khi một điều kiện cụ thể đúng.
- Do-while loop: giống như While loop, nhưng với một khối lệnh được thực hiện ít nhất một lần trước khi kiểm tra điều kiện.
Ví dụ về cấu trúc điều khiển vòng lặp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | int i; for (i = 0; i < 10; i++) { System.out.println("Giá trị của i là: " + i); } i = 0; while (i < 10) { System.out.println("Giá trị của i là: " + i); i++; } i = 0; do { System.out.println("Giá trị của i là: " + i); i++; } while (i < 10); |