Xin chào và chào mừng. Trong bài giảng này, tôi muốn nói về việc ra
quyết định, cụ thể là câu lệnh if.
Vì vậy, ngôn ngữ lập trình c
cung cấp khả năng ra quyết định chung dưới dạng câu lệnh if.
Chúng tôi biết những gì tuyên bố là cho đến thời điểm này.
Vì vậy, bây giờ chúng ta sẽ thêm một từ khóa vào trước nó và cũng đặt nó bên trong dấu ngoặc đơn.
Vì vậy, những gì nó trông giống như một cái gì đó như thế này.
Từ khóa if và sau đó bên trong dấu ngoặc đơn bên trái và bên phải, bạn có một
cái gì đó được gọi là một biểu thức.
Chúng tôi biết các biểu thức là gì và sự khác biệt giữa các câu lệnh.
Biểu thức đó phải đánh giá đúng hay sai.
Và sau đó bạn có một câu lệnh chương trình.
Và đây là loại câu lệnh if đơn giản nhất.
Vì vậy, nếu bạn nói biểu thức và sau đó là câu lệnh
chương trình, bạn thực sự có thể thay thế nó bằng
một số mã giả như nếu trời không mưa thì tôi sẽ đi bơi.
Và nếu bạn dịch mã giả đó thành c, mã giả giống như cú pháp
không thực, đó là
một cách mô tả một cái gì đó trong mã bằng ngôn ngữ tiếng Anh.
Và vì vậy nếu chúng ta nói
câu lệnh if trong c, tất cả những gì bạn sẽ làm là đặt điều kiện bên trong dấu ngoặc đơn, trời không mưa.
Và sau câu lệnh if là một câu
lệnh đơn hoặc nhiều câu lệnh.
Nếu bạn có nhiều câu lệnh, bạn sẽ đặt chúng bên trong dấu ngoặc nhọn.
Nhưng trong trường hợp
này, chúng tôi có một tuyên bố. Vì vậy, bên trong cơ thể câu lệnh if là tôi sẽ đi bơi.
Vì vậy, trời không mưa để thực hiện, tôi sẽ đi bơi.
Đây là lý do tại sao nó nằm trong luồng điều khiển. Bạn thực sự không phải lúc nào cũng thực hiện Tôi sẽ đi bơi.
Nó phụ thuộc vào điều kiện và nếu nó đúng hay sai.
Vì vậy, bạn có thể bỏ qua mã trong trường hợp này. Vì vậy, bạn không có một quy trình tuần tự.
Vì vậy, câu lệnh if được sử dụng để quy định
việc thực hiện một câu lệnh chương trình dựa trên một điều kiện xác định,
một khả năng ra quyết định. Vì vậy, bạn sẽ chỉ đi bơi nếu trời không mưa.
Bạn sẽ chỉ thực thi mã trong phần nội dung của câu lệnh if nếu trời không mưa.
Dấu ngoặc nhọn được yêu cầu cho các câu lệnh ghép bên trong khối if.
Ví dụ, nếu bạn nói nếu trời không mưa, tôi sẽ đi bơi hoặc trước khi
bạn đi bơi, bạn sẽ mặc đồ tắm, bạn sẽ mặc quần
áo và sau đó bạn sẽ đi bơi.
Sau đó, bạn phải đặt những dấu ngoặc nhọn vào đó.
Và một lần nữa, chúng tôi sẽ có các ví dụ cụ thể để cho thấy điều đó.
Nhưng dấu ngoặc nhọn không bắt buộc nếu bạn chỉ có một câu lệnh duy nhất, chúng là tùy chọn.
Bạn có thể cung cấp chúng hoặc không.
Tôi thường cung cấp dấu ngoặc nhọn trong tất cả các câu lệnh if của mình chỉ để đảm bảo tính nhất quán.
Đây là một ví dụ về câu lệnh if phổ biến trong ngôn ngữ lập trình c.
Trong trường hợp này, chúng tôi đang khai báo hai biến, một biến được đặt tên là điểm số và một có tên là lớn.
Điểm là 95, lớn là 90.
Ở đây chúng ta chỉ có một câu lệnh đơn giản trong phần
nội dung và nó không có dấu ngoặc. Và về cơ bản, chúng ta đang nói nếu điểm
lớn hơn lớn, điểm là 95. Vì vậy, nếu 95 lớn
hơn 90, đó là một biểu thức Boolean. Nó sẽ được đánh giá là đúng trong trường hợp này.
Vì vậy, những gì sẽ được hiển thị trên màn hình là jackpot.
Và sau đó chúng ta có cùng một ví dụ đó ngoại trừ việc chúng ta sử
dụng dấu ngoặc nhọn vì chúng ta có nhiều hơn một câu lệnh trong phần thân của câu lệnh if.
Vì vậy, trong ví dụ dưới cùng, nếu điểm số lớn hơn
lớn, chúng ta có một dấu ngoặc nhọn bên trái để bắt đầu khối lệnh if và
chúng ta có một dấu ngoặc nhọn kết thúc để kết thúc khối lệnh if.
Điều đó được tham chiếu đến phần nội dung của câu lệnh if.
Và vì vậy trong trường hợp này, chúng ta có hai câu lệnh. Đầu tiên chúng tôi sẽ tăng điểm số lên 1, và sau
đó chúng tôi sẽ hiển thị rằng bạn giành chiến thắng.
Vì vậy, hãy chú ý sự khác biệt ở đây, dấu ngoặc và không ngoặc.
Bạn vẫn có thể đặt các dấu ngoặc trong một câu lệnh, chúng là tùy chọn.
Nhưng nếu bạn có nhiều câu lệnh, thì bắt buộc phải có dấu ngoặc.
Dấu ngoặc bên trái biểu thị sự bắt đầu của
khối, dấu ngoặc bên phải biểu thị sự kết thúc của khối.
Các câu lệnh If khá đơn giản khi chúng chỉ là một bước tăng
đơn lẻ Từ khóa If trong ngoặc đơn bên trái và bên phải, bên trong dấu ngoặc đơn trong một biểu thức.
Và khi các câu lệnh phức tạp hơn, các biểu thức đó có thể trở thành nhiều biểu thức.
Vì vậy, bạn có thể bắt đầu sử dụng một số toán tử logic
mà chúng ta đã học về chúng ta có thể sử dụng dấu và hoặc hoặc.
Vì vậy, nếu điểm số lớn hơn lớn và một cái gì đó khác
được yêu cầu.
Vì vậy, chúng ta có thể có nhiều câu hỏi trong một câu lệnh if duy nhất hoặc chúng ta có thể chia nhỏ chúng.
Nhưng đây là một ví dụ câu lệnh if cơ
bản, một lần nữa cú pháp khá cơ bản,
bạn không thấy bất kỳ dấu chấm phẩy nào ở cuối
câu lệnh if, dấu chấm duy nhất ở cuối printfs.
Vì vậy, bạn chỉ có dấu ngoặc kết thúc và bắt đầu.
Bây giờ bạn cũng có thể thêm một mệnh đề khác vào câu lệnh if của mình.
Điều này được hỗ trợ bởi c. Vì vậy, bạn có thể mở rộng
nó một chút với một bổ sung nhỏ cho phép bạn linh hoạt hơn rất nhiều.
Vì vậy, ví dụ, nếu chúng ta nói nếu trận mưa hôm nay tồi tệ
hơn trận mưa ngày
hôm qua, tôi sẽ cầm ô của mình. Nếu không, nếu trời không mưa
như hôm qua, tôi sẽ lấy áo khoác.
Vì vậy, người khác đang nói điều gì sẽ xảy ra khi câu
hỏi cho câu trả lời là sai.
Vậy nếu không, tôi sẽ lấy áo khoác của tôi, sau đó tôi sẽ đi làm.
Vì vậy, đây chính xác là kiểu ra quyết định mà câu lệnh if else cung cấp.
Hãy làm điều gì đó khi nó đúng, cũng hãy làm điều gì đó khi nó sai.
Vì vậy, bạn có từ khóa if, và sau đó bên trong dấu ngoặc đơn, bạn có biểu thức Boolean, một cái gì
đó được đánh giá là true hoặc false.
Sau đó, bạn có câu lệnh của mình sẽ được thực thi một câu lệnh nếu nó đúng.
Nếu không, bạn sử dụng từ khóa else.
Nó là tùy chọn, bạn không phải lúc nào cũng cần cung cấp cái khác. Chỉ khi bạn muốn làm điều
gì đó nếu biểu thức Boolean sai, bạn nói câu lệnh hai.
Và một lần nữa trong trường hợp này, chúng ta không có bất kỳ dấu
ngoặc nào bên trong phần thân của khối if hoặc khối else bởi vì
chúng ta chỉ có các câu lệnh duy nhất.
Nếu chúng ta có nhiều hơn một câu lệnh bên trong một trong hai phần thân đó,
chúng ta phải cung cấp một dấu ngoặc cho bắt đầu và kết thúc.
Vì vậy, đây là một ví dụ về câu lệnh else với if.
Trong trường hợp này, chúng ta sẽ xác định xem một số là số chẵn hay lẻ.
Vì vậy, chúng tôi có chức năng chính của chúng tôi, đó là nơi chúng tôi nhập.
Và chúng tôi tạo một vài biến, một được gọi là số để kiểm tra, một được gọi là phần dư.
Cả hai đều thuộc loại int.
Chúng tôi đang khai báo chúng trên cùng một dòng bằng cách phân tách bằng dấu phẩy.
Chúng tôi chưa khởi tạo chúng.
Trên dòng mã tiếp theo, chúng tôi sẽ in ra một số đầu ra để yêu cầu người dùng nhập một số thông tin.
Sau đó, chúng tôi sử dụng chức năng scanf.
Chúng tôi đang đọc trong một số nguyên nên chúng tôi có thể thực hiện phần trăm i hoặc phần trăm d.
Và chúng tôi không đọc một chuỗi hay bất kỳ từ nào.
Vì vậy, chúng tôi sẽ đặt ký hiệu và trước biến nơi chúng tôi sẽ lưu trữ dữ liệu.
Vì vậy, người dùng sẽ nhập một số nào đó để kiểm tra.
Và sau đó chúng ta cũng sẽ lấy phần còn lại của bất cứ thứ gì họ đã nhập bởi 2 vì điều đó
sẽ cho chúng
ta biết liệu một cái gì đó là chẵn hay lẻ. Nếu bạn có thể chia một
số cho 2 và phần dư là 0, điều đó có nghĩa
là đó là một số chẵn. Nếu không, thật kỳ quặc.
Phần quan trọng của chương trình này là phần dưới cùng mà chúng ta đang sử dụng điều kiện.
Cho đến thời điểm này, mọi dòng đã được thực hiện.
Nhưng khi chúng ta có câu lệnh if và một điều kiện bên trong dấu
ngoặc đơn, nếu phần dư bằng 0
và bạn sẽ nhận thấy rằng bạn luôn phải sử dụng các dấu bằng để so
sánh, bạn không sử dụng bằng. Hãy nhớ rằng, bằng là để
gán, gán dữ liệu cho một giá trị. Bằng bằng là để so sánh các số.
Chúng tôi đang so sánh một biến phần dư với 0.
Và nếu nó bằng không, chúng tôi sẽ in ra đồng đều.
Khác, từ khóa khác nằm trên dòng tiếp theo đó, chúng ta sẽ in ra số lẻ.
Bạn sẽ nhận thấy không có dấu ngoặc trong if hoặc else vì chỉ có các câu lệnh đơn lẻ.
Hãy chạy nó và xem nó hoạt động như thế nào trong các khối mã.
Chà, đây là chương trình của chúng tôi. Nó được mô tả, như tôi vừa đề cập, theo cùng một cách.
Chúng tôi sẽ in ra chẵn hoặc lẻ. Vì vậy, chúng ta hãy tiếp tục và xây dựng cái này.
Và chúng tôi muốn đảm bảo rằng chúng tôi không có bất kỳ sai sót nào.
Bạn có một vài nguồn cấp dữ liệu dòng bổ sung ở đây.
Bây giờ khi chúng tôi chạy chương trình này, về cơ bản chúng tôi sẽ có
thể có đầu ra cho chẵn hoặc lẻ.
Nó sẽ hỏi chúng tôi số để được kiểm tra. Tôi sẽ bước vào 33, điều này thật kỳ lạ.
Nó sẽ nói rằng con số là số lẻ. Vì vậy, nó là chương trình khá đơn giản.
Điều quan trọng ở đây là bạn không thực thi một số mã nhất định.
Bạn sẽ thực hiện dòng 19, nếu phần còn lại bằng 0.
Nếu không, bạn thực sự sẽ đến dòng 21. Và các dấu ngoặc một lần nữa là tùy chọn.
Bạn có thể đưa những thứ
đó vào đó và IDE sẽ thực hiện một số thao tác hoàn thành tự động cho
bạn, điều này khá hay.
Nhưng một lần nữa, tôi thường thích thêm chúng vì chúng dễ dàng và
nó làm cho mã dễ đọc hơn.
Nó phụ thuộc vào phong cách định dạng của bạn.
Một số người thích có dấu ngoặc ở đầu câu lệnh else, như thế này.
Một số muốn có nó ở dòng khác, tùy thuộc vào cách định dạng của bạn.
Và trên thực tế, điều này có thể được thực hiện tự động cho bạn trong IDE bằng cách định dạng mã.
Nhưng điều này cũng hoạt động theo cùng một cách, và nó gần như còn dễ đọc hơn.
Và nếu bạn phải thêm các câu lệnh khác, bạn có
thể dễ dàng thêm chúng và không phải lo lắng về việc thêm các dấu ngoặc.
Vì vậy, tôi có thói quen thêm dấu ngoặc.
Một lần nữa, điều quan trọng khác ở đây là điều này bằng bằng.
Bạn không thể làm bằng. Nếu bạn làm bằng và chạy chương trình, bạn sẽ
thấy có một sự khác biệt lớn. Vì vậy, một câu lệnh
if else rất đơn giản, rất rất hữu ích. Bạn sẽ chỉ thực hiện dòng 19 nếu phần còn lại là số lẻ.
Nếu không, bạn sẽ thực hiện dòng 22.
Hãy nói thêm một chút về câu lệnh else if.
Vì vậy, bạn cũng có thể có một cái khác. Nếu vậy chúng ta đã học về nếu, chúng ta đã học về cái khác.
Bạn có thể xử lý việc ra quyết định phức tạp bổ sung bằng cách thêm câu lệnh if vào mệnh đề else của bạn.
Vì vậy, nó giống như hỏi một câu hỏi bổ sung.
Bạn sẽ không thực thi một cái gì đó nếu điều kiện trong bản gốc nếu là sai, bạn
sẽ hỏi một câu hỏi khác.
Vì vậy, bạn nói nếu biểu thức 1,
bạn có một số mã sẽ thực thi nếu nó đúng.
Nếu không, Nếu không,
bạn nói nếu sau nó là hoàn
toàn hợp pháp. Đây là một câu lệnh if bên trong một câu lệnh else.
Sau đó, bạn thực hiện chương trình hai. Khác, bạn thực hiện một cái gì đó khác.
Vì vậy, điều này mở rộng câu lệnh if từ một quyết định logic hai giá trị thành
một quyết định logic ba giá trị.
Ở đây bạn đang hỏi hai câu hỏi.
Và nếu câu hỏi cho câu trả lời đầu tiên là đúng, bạn
thực hiện câu lệnh chương trình một.
Sau đó, bạn hỏi câu hỏi thứ hai, chỉ khi câu hỏi đầu tiên là đúng hoặc
nếu câu hỏi đầu tiên là sai.
Và nếu điều đó đúng, thì bạn thực sự có một số đoạn mã khác mà bạn thực thi một cái gì đó khác.
Vì vậy, về cơ bản bạn có ba nhánh ở
đây, ba dòng mã riêng biệt có thể được thực thi hoặc có thể không được thực thi.
Câu lệnh chương trình 1, câu lệnh chương trình 2 hoặc câu lệnh chương trình 3.
Bạn có thể viết lại mã này để sử dụng một mã khác nếu.
Ngay bây giờ, if nằm trên một dòng riêng biệt, nhưng bạn thực sự có thể chỉ làm điều gì đó như thế này, nếu
biểu thức người ta làm điều gì đó khác nếu.
Bạn không cần phải đặt nó trên một dòng riêng biệt. Nó có thể là một dòng duy nhất
và sau đó bạn có thể có một dòng khác bên ngoài dòng đó.
Điều khó khăn duy nhất về điều này là mệnh đề else sẽ được thực thi.
Và đây là điều tương tự. Vì vậy, mệnh đề else này sẽ được thực
thi cho cả ba.
Vì vậy, nó hơi khó hiểu
trong ví dụ đầu tiên vì có vẻ như lệnh
khác thứ hai chỉ được thực thi nếu lệnh còn
lại là sai.
Nhưng nó thực sự được thực thi nếu biểu thức đầu tiên là sai.
Nếu bạn có dấu ngoặc trong đó, bạn có thể thực sự lồng các câu lệnh if đó.
Và bên ngoài, cái khác cuối cùng sẽ chỉ thực hiện dựa
trên câu hỏi của câu trả lời nếu thứ hai.
Chúng ta sẽ đi vào lồng khi chúng ta nói về các câu lệnh if lồng nhau và các vòng lặp lồng nhau.
Các câu lệnh if lồng nhau chỉ là đặt một bên if và if,
và bạn phải cẩn thận mệnh đề else
của mình ở đâu vì else phải tương ứng với câu lệnh if cuối cùng.
Đây là một ví dụ khác mà chúng ta sẽ thực sự cố gắng triển khai hàm dấu hiệu.
Chúng tôi sẽ trả về âm 1 0 hoặc 1.
Vì vậy, đây là một đánh giá ba cấp ở đây.
Những gì chương trình này đang thực hiện trong quy trình
chính là chúng tôi đang tạo một vài biến kiểu int, number và sign.
Chúng tôi yêu cầu người dùng nhập một số và chúng tôi đang lưu trữ nó trong biến số.
Và nếu số nhỏ hơn 0, dấu sẽ bằng âm 1.
Ngược lại, nếu số đó bằng 0, nó sẽ là 0.
Ngược lại, nếu cả hai đều sai, thì dấu của nó sẽ bằng 1, nghĩa là nó dương.
Vì vậy, đây là một ví dụ về cách if khác có thể rất hữu ích.
Và bạn có thể có nhiều ifs khác. Chúng tôi chỉ nhìn thấy một cái ở đó, nhưng chúng tôi có thể có 100 cái nếu chúng tôi muốn.
Khác nếu số bằng 2, khác nếu số bằng 3, khác nếu số bằng 4.
Và bạn cũng có thể thấy dấu ngoặc không được sử dụng ở
đây nhưng dấu ngoặc sẽ được sử dụng nếu bạn có nhiều câu lệnh bên trong nội dung.
Và khi bạn sử dụng câu lệnh if, bạn
cũng nên nhận thấy rằng bạn sẽ sử dụng rất nhiều toán
tử logic, toán tử so sánh và toán tử quan hệ.
Vì vậy, bạn đang sử dụng ký hiệu less than ở đây. Các toán tử logic, hãy nhớ, là
các ký hiệu và. Hai trong số chúng toán tử
quan hệ cho và hoặc, là nơi bạn đang so sánh các giá trị.
Vì vậy, khi bạn đang làm những việc như nhỏ hơn hoặc nhỏ hơn bằng hoặc lớn hơn.
Chúng được sử dụng khá nhiều khi bạn đang sử dụng số trong biểu thức câu lệnh if.
Khi bạn sử dụng dấu "và", bạn thực sự đang đặt nhiều câu hỏi.
Nếu điều này là đúng và điều này là đúng hoặc nếu điều này là đúng hoặc.
Đó là một cách để giảm bớt các câu lệnh if khác.
Vì vậy, bạn có thể viết lại mã này ngay tại đây nếu số nhỏ hơn 0.
Ngoài ra, nếu bạn muốn có
dấu hiệu, bạn không thể thực sự như bây giờ.
Nhưng nếu bạn có thể đặt một dấu "và" vào đó và bạn có
thể nói nếu số nhỏ hơn 0 và nó bằng 0,
thì dấu là âm 1 và 0. Ý tôi là bạn không thể làm điều đó cụ thể, nhưng
bạn có thể xem cách bạn có thể thêm nhiều câu hỏi tại đây.
Vì vậy, chúng ta sẽ có một thử thách cụ thể trong đó chúng ta sẽ viết một chương trình sử dụng các câu lệnh if.
Đây là một số ví dụ điển hình. Bạn sẽ muốn đặt những ví dụ này bên trong IDE của mình và xem điều gì sẽ xảy ra.
Nhưng nếu khác lại là một cách để đặt nhiều câu hỏi.
Câu lệnh if else lồng nhau.
Các câu lệnh if l lồng nhau có nghĩa là bạn có thể sử dụng một câu lệnh if hoặc
else if bên trong một câu lệnh if hoặc else if khác.
Vì vậy, đó là lý do tại sao nó được gọi là lồng.
Bạn có thể sử dụng nhiều thứ bên trong và bạn có thể tiếp tục làm điều đó lặp đi lặp lại.
Không có giới hạn về số lượng tổ mà bạn không nhìn thấy.
Vì vậy, cú pháp trông giống như thế này.
Nếu một biểu thức Boolean bằng true, thì bên trong
biểu thức đó và khi bạn thực hiện lồng nhau, thông thường, bạn muốn sử dụng dấu ngoặc.
Mặc dù bạn không cần phải sử dụng các câu lệnh đơn lẻ vì nó làm cho nó dễ đọc hơn nhiều.
Vì vậy, nếu biểu thức Boolean 1 là đúng, thì
bên trong đó bạn nói nếu biểu thức Boolean 2 là đúng.
Bạn sẽ không thực sự thực thi nếu biểu thức Boolean 2
trừ khi biểu thức Boolean 1 là true.
Và sau đó bên trong phần thân của biểu thức Boolean 2, bạn sẽ thực thi mã nếu điều đó đúng.
Vì vậy, một ví dụ về câu lệnh if lồng nhau sẽ trông giống như thế này.
Nếu trò chơi kết thúc bằng 0 và sau đó bên trong đó nếu người chơi di chuyển bằng bằng bạn, thì bạn
có một bản in.
Điều quan trọng ở đây là không có dấu
ngoặc và khó theo dõi hơn một chút. Cách duy nhất bạn làm theo điều này là
thông qua thụt lề, một điều khác bạn muốn làm khi viết câu lệnh if trong các khối mã.
Bạn luôn muốn thụt lề khối vì nó giúp bạn đọc dễ dàng hơn.
Hãy tưởng tượng nếu cái này không có thụt
lề, thì việc so khớp cái kia và ifs sẽ khó khăn hơn như thế nào.
Vì vậy, hãy sử dụng thụt lề nhưng cũng có thể sử dụng dấu ngoặc, dấu ngoặc giúp làm cho nó dễ đọc hơn.
Và hãy nhớ rằng, khả năng đọc là một vấn đề lớn vì khả năng đọc giúp bạn tìm và sửa lỗi của mình nhanh hơn nhiều.
Vì vậy, trong trường hợp này, chúng tôi sẽ chỉ thực hiện nước đi của
bạn được in ra màn hình nếu người chơi di chuyển bằng u và trò chơi kết thúc bằng 0.
Chúng tôi sẽ chỉ thực hiện nước đi của tôi hiển thị
trên màn hình nếu trò chơi bằng 0 nhưng người chơi di chuyển không bằng u.
Và cuối cùng, chúng tôi sẽ chỉ thực hiện trò
chơi kết thúc nếu trò chơi không bằng 0.
Vì vậy, chúng tôi có ba điều kiện ở
đây để in ra ba câu lệnh khác nhau.
Và bạn thực sự có thể viết nếu trò chơi
kết thúc bằng 0 và dấu "và" và, người chơi di chuyển bằng u.
Nhưng vấn đề với điều đó sẽ là của bạn, nước đi của tôi có thể
không đúng bởi vì bạn vẫn phải so sánh người chơi để di chuyển.
Vì vậy, đôi khi bạn có thể sử dụng dấu và để đơn giản
hóa mã, có những lúc bạn không thể. Trong trường hợp này, bạn không thể vì
cái khác đầu tiên nằm bên trong if lồng nhau.
Vì vậy, lồng ghép khá áp dụng và bạn sẽ sử dụng nó,
vì vậy hãy làm quen với nó. Một lần nữa, cú pháp cho câu lệnh if rất đơn giản.
Biểu thức Boolean bên trong và sau đó sử dụng dấu ngoặc cho các câu lệnh đơn.
Nếu không, bạn sử dụng dấu ngoặc.
Bạn không sử dụng dấu ngoặc cho các trạng thái đơn lẻ. Nếu không, hãy sử dụng dấu ngoặc.
Ngoài ra còn có một loại cách
thứ ba để đặt câu hỏi trong chương trình của bạn. Đây được gọi là toán tử điều kiện, và chúng
ta đã nói đến khi chúng ta nói về các toán tử,
nhưng nó cần hiểu thêm một chút.
Vì vậy, toán tử điều kiện là một toán tử rất duy nhất.
Nó không giống như tất cả các toán tử khác trong c.
Hầu hết các toán tử trong c là một ngôi hoặc nhị phân.
Một ngôi có nghĩa là các toán tử nhận một đối số duy nhất hoặc một toán hạng duy nhất.
Nhị phân có nghĩa là chúng có toán hạng ở cả hai phía.
Vì vậy, toán tử cộng là một toán tử nhị phân vì bạn thực hiện 5 cộng với 3,
hai toán hạng.
Phủ định là một toán tử một ngôi vì bạn nói như phủ định 3.
Chà, có một lựa chọn thứ ba, có một toán tử bậc ba, cần ba toán hạng.
Và đây là toán tử điều kiện.
Bạn có hai ký hiệu được sử dụng để biểu thị toán tử này, toán tử có điều kiện này.
Đó là dấu chấm hỏi và dấu hai chấm.
Và nó thực sự tương đương với một câu lệnh if else.
Cách mà nó trông là toán hạng đầu tiên được đặt trước dấu chấm hỏi,
đó sẽ là điều kiện, biểu thức Boolean trong các ví dụ trước đó.
Và sau đó điều thứ hai giữa dấu chấm hỏi và dấu hai chấm
về cơ bản sẽ là phần thân của câu lệnh if nếu câu lệnh if là đúng.
Và sau đó dấu hai chấm là dấu hai chấm, và
đó sẽ là nếu điều kiện đánh giá là false, bạn sẽ thực thi phần nội
dung mã đó, vì vậy nó giống như phần nội dung của câu lệnh else.
Vì vậy, toán tử quay này không hơn gì một câu lệnh if else chỉ là ký hiệu viết tắt, bạn
có thể viết nó nhanh hơn nhiều.
Sự khác biệt ở đây cũng là không có dấu ngoặc, vì vậy bạn chỉ có thể có
các biểu thức đơn hoặc các câu lệnh đơn bên trong phần thân sau dấu chấm hỏi hoặc sau dấu hai chấm.
Vì vậy, nếu toán tử điều kiện đánh giá một trong hai
biểu thức tùy thuộc vào việc liệu biểu thức logic đó có đúng hay không,
tùy thuộc vào điều kiện có đúng hay không.
Nếu điều kiện sai, biểu thức 2 được đánh giá.
Vì vậy, một lần nữa, nó hoạt động giống như một câu lệnh if else.
Cũng lưu ý cách sắp xếp toán tử liên quan đến các toán hạng.
Ký tự dấu hỏi tuân theo điều kiện biểu thức logic.
Bên phải của dấu hỏi là hai toán hạng, biểu thức một và biểu thức hai.
Chúng đại diện cho sự lựa chọn.
Giá trị kết quả từ hoạt động sẽ là giá trị của biểu thức
nếu điều kiện cho giá trị đúng.
Và sau đó giá trị của biểu thức hai nếu nó sai. Vì vậy, chính xác những gì tôi đã nói nếu khác.
Hãy xem một ví dụ. Vì vậy, trông có vẻ buồn cười
khi đọc, nhưng điều này đang nói là nếu x bằng với y
lớn hơn 7, vậy
điều này đang làm gì? Nó đang làm một nhiệm vụ?
X bằng y. Vì vậy, nếu x là 5 và y là
9, nó sẽ nói nếu x lớn hơn 9, thì nó
sẽ đặt số thành 25 x. Nếu không, nó sẽ đặt x thành 50.
Vì vậy, hơi khó hiểu khi đọc nó trước.
Điều này dẫn đến kết quả là x được đặt thành 25 nếu y lớn hơn 7 hoặc bằng 50 nếu ngược lại.
Vì vậy, đó là một cách dễ dàng để thực hiện một phép gán biểu thức.
X bằng y lớn hơn 7.
Nếu y lớn hơn 7, x bằng 25, ngược lại là 50.
Đó là lý do tại sao dấu x bằng có một phim khiêu dâm.
Vì vậy, toán tử bậc ba và các điều kiện nằm ở phía bên phải của phép gán
và đây thường là cách bạn sử dụng nó. Bạn nói x bằng, kết quả của toán tử
bậc ba đó.
Vì vậy, toàn bộ toán tử bậc ba là y lớn hơn 7. Vì vậy, nó chỉ nói nếu y lớn
hơn 7, 25, nếu không 50. Và sau đó bạn gán nó cho x.
Và đây thường là cách bạn sử dụng nó. Nó cũng giống như
nói sử dụng câu lệnh if. Nếu y lớn hơn 7, x bằng 25, còn x bằng 50.
Nhưng nó ít mã hơn nhiều.
Hạn chế của toán tử điều kiện này là bạn
chỉ có thể có hai biến được viết bằng cách sử dụng toán tử điều kiện, tối
đa là tối thiểu.
Bạn không thể chỉ làm một tấn trong số họ. Vì vậy, nó là một chút hạn chế. Nó thường được sử dụng để phân công.
Vì vậy, một bài giảng khá dài, rất nhiều ví dụ khác nhau.
Điều này sẽ được áp dụng nhiều hơn khi chúng tôi thực hiện thử thách của mình.
Nhưng nếu các câu lệnh sẽ được sử dụng nhiều
và chúng thực sự, rất dễ học. Trước khi bạn biết nó,
bạn sẽ phải biết cú pháp như mu
bàn tay, dấu ngoặc đơn, dấu ngoặc, nếu khác từ khóa.
Và thỉnh thoảng, bạn sẽ sử dụng toán tử điều kiện này.
Một lần nữa, có thể khi bạn trở nên nâng cao hơn trong c, bạn sẽ bắt đầu nhận ra rằng,
nếu câu lệnh này khiến tôi mất nhiều thời gian để viết, có
lẽ tôi có thể viết trong một dòng duy nhất bằng cách sử dụng toán tử điều kiện
với dấu chấm hỏi và dấu hai chấm của tôi.
Một lần nữa, rất hữu ích để gán các biến dựa trên điều kiện. Cảm ơn bạn.