Cấu trúc điều khiển javascript javatpoint

Mã được chạy theo thứ tự từ dòng đầu tiên trong tệp đến dòng cuối cùng, trừ khi máy tính chạy qua các cấu trúc [cực kỳ thường xuyên] làm thay đổi luồng điều khiển, chẳng hạn như điều kiện và vòng lặp

Ví dụ: hãy tưởng tượng một tập lệnh được sử dụng để xác thực dữ liệu người dùng từ biểu mẫu trang web. Tập lệnh gửi dữ liệu đã được xác thực, nhưng nếu người dùng, chẳng hạn, để trống một trường bắt buộc, thì tập lệnh sẽ nhắc họ điền vào đó. Để làm điều này, tập lệnh sử dụng cấu trúc có điều kiện hoặc

if [condition] statement
3, để các mã khác nhau thực thi tùy thuộc vào việc biểu mẫu đã hoàn tất hay chưa

if [isEmpty[field]] {
  promptUser[];
} else {
  submitForm[];
}

Một tập lệnh điển hình trong JavaScript hoặc PHP [và tương tự] bao gồm nhiều cấu trúc điều khiển, bao gồm các điều kiện, vòng lặp và hàm. Các phần của tập lệnh cũng có thể được đặt để thực thi khi các sự kiện xảy ra

Ví dụ: đoạn trích trên có thể nằm trong một chức năng chạy khi người dùng nhấp vào nút Gửi cho biểu mẫu. Hàm này cũng có thể bao gồm một vòng lặp lặp qua tất cả các trường trong biểu mẫu, kiểm tra lần lượt từng trường. Nhìn lại mã trong phần

if [condition] statement
4 và
if [condition] statement
5, các dòng
if [condition] statement
6 và
if [condition] statement
7 cũng có thể là lệnh gọi đến các chức năng khác trong tập lệnh. Như bạn có thể thấy, các cấu trúc điều khiển có thể ra lệnh cho các luồng xử lý phức tạp thậm chí chỉ với một vài dòng mã

Luồng điều khiển có nghĩa là khi bạn đọc một tập lệnh, bạn không chỉ phải đọc từ đầu đến cuối mà còn phải xem cấu trúc chương trình và cách nó ảnh hưởng đến thứ tự thực hiện

Các câu lệnh điều khiển được thiết kế để cho phép bạn tạo các tập lệnh có thể quyết định dòng mã nào được đánh giá hoặc số lần đánh giá chúng. Có hai loại câu lệnh điều khiển khác nhau. câu điều kiện và câu lệnh lặp

Các câu lệnh điều khiển đưa ra quyết định của chúng dựa trên một biểu thức đánh giá các giá trị logic đúng hoặc sai hoặc giá trị tương đương của chúng trong các kiểu dữ liệu khác. Vì chúng ta sẽ sử dụng rộng rãi các kiểu dữ liệu không phải boolean trong phần còn lại của chương, đây là lời nhắc về cách các kiểu dữ liệu khác được xử lý trong các điều kiện logic

  • Các số được coi là đúng nếu không bằng 0, ngược lại chúng được coi là sai

  • Các chuỗi được coi là đúng nếu độ dài lớn hơn 0 ký tự, nếu không chúng được coi là sai

  • không xác định được coi là sai

  • null được coi là sai

Câu điều kiện

Câu lệnh điều kiện được sử dụng để đưa ra quyết định. Trong cuộc sống thực, chúng tôi đưa ra đủ loại quyết định dựa trên các tiêu chí như "tôi có được cung cấp đủ tiền để nhận công việc này không?" . " Nếu câu trả lời là "không" thì "đừng nhận việc. " Trong JavaScript, bạn cần đưa ra quyết định về việc đánh giá đoạn mã nào. Ví dụ: nếu bạn yêu cầu người dùng nhập dữ liệu để bạn có thể thực hiện phép tính, bạn sẽ muốn thực hiện phép tính nếu đầu vào là số, nhưng không phải nếu không phải là số

Bạn đã bắt gặp một cách đơn giản để đưa ra quyết định dưới dạng toán tử điều kiện, ?. Toán tử điều kiện kiểm tra để xác định xem một điều kiện là đúng hay sai và sử dụng kết quả để quyết định xem có đánh giá toán hạng thứ hai hay thứ ba của nó hay không. Mặc dù đây là một phương pháp nhanh chóng để gán một trong hai giá trị cho một biến, nhưng nó cũng rất hạn chế. Nếu bạn muốn chọn giữa nhiều hơn hai tùy chọn, toán tử điều kiện không đủ để thực hiện những gì bạn muốn

Các câu lệnh if, other và else if

Các câu lệnh if, other và other if cho phép bạn đưa ra lựa chọn giữa một số tùy chọn. Trước tiên, hãy xem cách sử dụng câu lệnh if để đưa ra lựa chọn giữa hai phương án

Câu lệnh if là câu lệnh ra quyết định được sử dụng thường xuyên nhất. Nó kiểm tra một điều kiện và nếu nó đánh giá là đúng, thì [các] câu lệnh mà nó chi phối sẽ được đánh giá, nhưng nếu nó đánh giá là sai thì [các] câu lệnh đó sẽ được chuyển qua. Cú pháp như sau

if [condition] statement

hoặc

if [condition]
  statement

Điều kiện luôn được bao quanh bởi dấu ngoặc đơn nhưng câu lệnh mà nó chi phối có thể nằm trên cùng một dòng hoặc ở dòng sau. Trình thông dịch JavaScript luôn liên kết câu lệnh if với bất kỳ câu lệnh nào theo sau nó. Cả hai cách bố trí mã đều hoạt động nhưng một số người thích sử dụng các dòng riêng biệt vì nó làm cho câu lệnh if của họ dễ đọc hơn. Đây là một ví dụ sử dụng hai câu lệnh if để bạn có thể cảm nhận được cách hoạt động của câu lệnh if

var myVar1 = true;
var myVar2 = false;
if [myVar1 == true] alert["myVar1 is true"];
if [myVar2 == true] alert["myVar2 is true"];

Điều này sẽ chỉ hiển thị một hộp cảnh báo. Dòng cuối cùng trong mã sẽ không hiển thị hộp cảnh báo vì biến myVar2 có giá trị sai. Xem Hình 3. 7

Hình 3. 7 Câu lệnh if đầu tiên có giá trị là true nên hộp cảnh báo đầu tiên hiển thị

Hãy nhớ rằng toán tử so sánh, ==, kiểm tra xem toán hạng bên phải và bên trái của nó có bằng nhau không. Nếu chúng bằng nhau, nó trả về true và nếu chúng không bằng nhau, nó trả về false. Trong ví dụ trên, điều kiện cho câu lệnh if đầu tiên có giá trị là true vì giá trị của myVar1 là true. Điều kiện cho câu lệnh thứ hai đánh giá là sai vì myVar2 không bằng đúng. Như bạn có thể thấy, câu lệnh if đưa ra quyết định liệu hàm alert[] có được gọi hay không dựa trên việc đánh giá điều kiện

Thông thường, bạn sẽ muốn câu lệnh if [và các câu lệnh điều kiện khác cho vấn đề đó] chi phối nhiều hơn chỉ một câu lệnh khác. Để làm điều này, bạn cần sử dụng cái được gọi là khối câu lệnh. Khối câu lệnh bao gồm một cặp dấu ngoặc nhọn bao quanh các câu lệnh của câu lệnh if giống như cách các dấu ngoặc nhọn bao quanh các câu lệnh trong thân hàm. Ví dụ

if [condition] {
 statement1
 statement2
 ...
 statementN
}

Hy vọng điều này cảm thấy quen thuộc. Nếu điều kiện trong dấu ngoặc đơn được đánh giá là đúng, thì các câu lệnh trong dấu ngoặc nhọn được đánh giá. Nếu điều kiện trong ngoặc đơn đánh giá là sai, thì không có câu lệnh nào trong số đó được đánh giá

TIỀN BOA

Sẽ rất hữu ích khi sử dụng dấu ngoặc nhọn ngay cả khi câu lệnh if chỉ có một câu lệnh được liên kết với nó. Sau đó, nếu sau này bạn cần thêm các câu lệnh khác, bạn sẽ không gặp phải lỗi do quên thêm dấu ngoặc nhọn

Hãy nhớ rằng câu lệnh điều kiện cho phép bạn thực hiện một hành động nếu điều kiện đúng và hành động khác nếu điều kiện không đúng. Đây là nơi câu lệnh khác xuất hiện. Bằng cách đặt câu lệnh other sau câu lệnh if, nó được liên kết với câu lệnh if để [các] câu lệnh mà nó chi phối được đánh giá nếu điều kiện trong ngoặc đơn của câu lệnh if hóa ra là sai. Điều này giúp tiết kiệm việc viết lại điều kiện. Theo cách này, các câu lệnh mà câu lệnh if chi phối sẽ được đánh giá hoặc các câu lệnh mà câu lệnh kia chi phối sẽ được đánh giá. Xét cho cùng, một điều kiện trong JavaScript chỉ có thể đánh giá là đúng hoặc sai. Dưới đây là một vài ví dụ để chứng minh bạn sẽ viết cái này như thế nào

if [4 < 3]
  alert["4 is less than 3"];
else
  alert["4 is greater than 3"];

Vì 4 lớn hơn 3 nên cảnh báo sau câu lệnh if bị bỏ qua; . Câu lệnh khác cũng có thể được sử dụng với một khối chức năng để bạn có thể viết

if [4 < 3] {
 alert["The if statement's statement block was evaluated"];
 alert["because 4 is less than 3"];
}
else {
 alert["The else statement's statement block was evaluated"]
 alert["because 4 is greater than 3"]
}

Cuối cùng, khi bạn cần linh hoạt hơn nữa để kiểm tra nhiều điều kiện thì có câu lệnh if khác. Nó được chèn vào giữa câu lệnh if và other. Đây là một ví dụ

var promptVal = prompt["Please enter a number", ""];

if [promptVal > 0]
  alert["The number you entered was positive"];
else if [promptVal == 0]
  alert["The number you entered was zero"];
else
  alert["The number you entered was negative"];

Trong ví dụ này, tập lệnh chấp nhận một số đã nhập và sử dụng nó cùng với lệnh if. khác nếu. câu lệnh khác để chọn trong số ba cảnh báo có thể để đánh giá. Lưu ý rằng chỉ một trong các câu lệnh điều khiển sẽ được sử dụng. Nếu điều kiện của câu lệnh if được đánh giá là đúng, thì câu lệnh if khác và câu lệnh khác sẽ bị bỏ qua. Nếu câu lệnh if đánh giá là sai, thì điều kiện của câu lệnh if khác được kiểm tra. Tương tự như vậy nếu điều kiện của câu lệnh other if được đánh giá là đúng, thì câu lệnh khác sẽ bị bỏ qua. Câu lệnh khác đóng vai trò mặc định nếu tất cả các điều kiện trước đó được đánh giá là sai. Đôi khi bạn sẽ không muốn bất cứ điều gì xảy ra nếu không có điều kiện nào của bạn được đánh giá là đúng, trong trường hợp đó bạn sẽ không sử dụng câu lệnh khác

Có thể đặt nhiều câu lệnh other if giữa câu lệnh if và câu lệnh other nếu bạn muốn kiểm tra nhiều hơn ba điều kiện

Nếu bạn còn nhớ cuộc thảo luận về hàm isNaN[] trước đó, bạn có thể nhận ra rằng có một vấn đề với ví dụ trên—nó không cho phép người dùng có thể nhập một giá trị không phải là số. Để phù hợp với tình huống này, bạn sẽ muốn chuyển điều kiện kiểm tra số lớn hơn 0 sang câu lệnh if khác và sử dụng câu lệnh if để kiểm tra trước xem giá trị đã nhập có phải là số không. Để làm điều này, bạn sẽ sử dụng hàm isNaN[]. Đây là một ví dụ

________số 8

Lưu ý rằng các khối câu lệnh cũng có thể được sử dụng với câu lệnh other if để kiểm soát nhiều hơn chỉ một câu lệnh, chẳng hạn như các cảnh báo trong ví dụ trước đó

Tiếp theo chúng ta hãy xem xét một câu lệnh điều khiển thay thế, câu lệnh switch, có thể được sử dụng thay cho câu lệnh if. câu lệnh khác trong ví dụ trên

Tuyên bố chuyển đổi

Câu lệnh chuyển đổi cho phép bạn chọn một trong nhiều tùy chọn. Nó có chức năng giống với chức năng được cung cấp bởi các câu lệnh if, other if và other. Hãy xem câu lệnh switch hoạt động như thế nào

Câu lệnh switch có cú pháp khác biệt rõ rệt so với câu lệnh if. câu lệnh khác, nhưng nó hoạt động theo cách tương tự. Cấu trúc của nó được hiển thị dưới đây. Lưu ý rằng các dòng bắt đầu bằng chữ hoa phải kết thúc bằng dấu hai chấm

switch [expression]{
 case value:
  statements
 case value:
  statements
 case value:
  statements
}

GHI CHÚ

Giá trị chữ hoa chữ thường trong JavaScript không cần phải là hằng số hoặc cùng kiểu dữ liệu

Điều đầu tiên mà câu lệnh chuyển đổi thực hiện là đánh giá biểu thức chứa trong dấu ngoặc đơn của nó thành một giá trị duy nhất. Sau đó, nó đi xuống thông qua các câu lệnh tình huống để kiểm tra xem giá trị được trả về bởi biểu thức trong ngoặc đơn sau khi từ khóa switch có khớp với bất kỳ giá trị nào theo sau từ khóa tình huống không. Nếu nó tìm thấy một kết quả phù hợp, thì nó sẽ đánh giá tất cả các câu lệnh sau đây thuộc về câu lệnh trường hợp đó

Hãy thử ví dụ trong Liệt kê 3. 5, và xem cho chính mình

Liệt kê 3. 5 Trình diễn tuyên bố chuyển đổi [switchDemo. htm]

if [condition] statement
0

Trang này sẽ dẫn đến các hộp cảnh báo như trong Hình 3. 8

Hình 3. 8 Hai hộp cảnh báo được đưa ra vì mỗi câu lệnh trường hợp thứ hai và thứ ba đều đánh giá là đúng

Điều này là do 1+1 đánh giá thành 2. Do đó, không có gì ngạc nhiên khi trường hợp đầu tiên, chuỗi "a", không khiến hàm alert[] liên quan được đánh giá. Nhưng trường hợp tiếp theo là số 2, đó là một trận đấu. Như bạn có thể thấy từ các ảnh chụp màn hình trong Hình 3. 8, điều này khiến không chỉ cảnh báo chứa số 2 được đánh giá, mà có lẽ đáng ngạc nhiên là cảnh báo chứa số 3 cũng được hiển thị. Tuy nhiên, điều này có thể không gây ngạc nhiên. Chúng tôi đã nói rằng nếu một kết quả khớp được tìm thấy, tất cả các câu lệnh sau sẽ được đánh giá cho đến dấu ngoặc nhọn đóng của câu lệnh switch. Mặc dù tính năng này đôi khi có thể được sử dụng, nhưng nhìn chung bạn sẽ chỉ muốn đánh giá các câu lệnh giữa trường hợp phù hợp và trường hợp sau. Để làm được điều này, bạn cần sử dụng câu lệnh break. Thay thế câu lệnh switch trong Liệt kê 3. 5 với đoạn mã sau

if [condition]
  statement
0

GHI CHÚ

Các câu lệnh theo sau mỗi trường hợp không được đặt trong dấu ngoặc nhọn như trong một khối câu lệnh ngay cả khi có rất nhiều câu lệnh trên nhiều dòng. Do đó, sẽ rất hữu ích nếu bố cục mã của bạn như trong ví dụ trên, để giúp bạn hoặc người khác giải mã mã của bạn

Như bạn sẽ thấy, việc sử dụng câu lệnh break làm câu lệnh cuối cùng trong khối lệnh case sẽ ngắt quá trình đánh giá câu lệnh switch và việc thực thi tập lệnh tiếp tục sau dấu ngoặc nhọn đóng của câu lệnh switch. Điều này có tác dụng mong muốn là ngăn các câu lệnh thuộc về các câu lệnh tình huống khác được đánh giá

Câu lệnh switch có thể, tùy chọn, để chạy một số mã trong trường hợp không có kết quả phù hợp—giống như câu lệnh kết luận khác hoạt động ở cuối câu lệnh if. tuyên bố khác. Để thực hiện việc này, bạn sẽ bao gồm, sau các câu lệnh tình huống, từ khóa default theo sau là dấu hai chấm, như minh họa trong ví dụ bên dưới

if [condition]
  statement
1

Vì không có trường hợp nào ở trên là chuỗi "Khớp chuỗi này", các câu lệnh của chúng bị bỏ qua và các câu lệnh theo mặc định được đánh giá. Xem Hình 3. 9

Hình 3. 9 Câu lệnh mặc định được đánh giá khi không có câu lệnh tình huống nào khớp với

Vậy cái nào nên dùng. nếu. câu lệnh khác hoặc câu lệnh chuyển đổi? . Câu lệnh switch kiểm tra sự khớp với một biểu thức duy nhất và do đó rất hữu ích khi bạn cần đánh giá các câu lệnh khác nhau dựa trên giá trị của một biến duy nhất. Nó cũng hiệu quả hơn, vì vậy hãy cố gắng làm quen với việc sử dụng nó khi có thể. nếu. mặt khác, câu lệnh other có thể được cung cấp một điều kiện mới để kiểm tra với câu lệnh if khác. Điều này làm cho câu lệnh if [và các câu lệnh if khác có liên quan của nó] linh hoạt hơn, vì vậy câu lệnh if có xu hướng được sử dụng nhiều hơn câu lệnh switch

Chủ Đề