01/10/2018, 16:35

Điều kiện if else trong các ngôn ngữ lập trình

Chào các bạn, mình có cái ví dụ đơn giản trong php như này

$a = 5;

if( $a > 2 ){
    echo 'Yes';
}elseif( $a > 3 ){
    echo 'Yes too';
}elseif( $a > 4 ){
    echo 'Yes three';
}else{
    echo 'No';
}

// 'Yes'

Kết quả sẽ in ra là Yes và câu lệnh dừng lại, cái này là auto break hay cái câu lệnh if else nó vậy nhỉ
bấy lâu nay cứ tưởng câu lệnh này sẽ duyệt toàn bộ điều kiện nữa
bạn nào có tài liệu chi tiết về câu lệnh if else ko cho mình xin tham khảo với

Quân viết 18:40 ngày 01/10/2018

Bạn có hiểu statement if là gì không đã

viết 18:41 ngày 01/10/2018

mình hiểu đủ dùng chứ ko đc chuyên sâu

Quân viết 18:46 ngày 01/10/2018

Đủ dùng là như thế nào. if là gì, else là gì bạn giải thích và hiểu tường tận chưa

viết 18:37 ngày 01/10/2018

Mệnh đề if else

if ( condition ) {
    // func_1
} elseif ( condition_2 ) {
    // func_2
} elseif ( condition_3 ) {
   // func_3
} else {
    // func_4
}

này nhìn qua thì cũng biết được cách hoạt động của nó, nếu điều kiện đầu đúng thì chạy func_1 nếu sai thì chạy func_2 cứ lần lượt

nhưng ở đây mình để tất cả điều kiện đều đúng thì nó cũng chỉ chạy điều kiện đầu, nếu bạn hiểu rõ tường tận thì giải thích thêm cho mình nhé

HK boy viết 18:47 ngày 01/10/2018

Thì đúng rồi còn gì.

Trong 1 dãy if else, nếu gặp bất cứ điều kiện nào đúng thì xử lí tất cả các lệnh trong if và dừng lại, dù những điều kiện sau có đúng nhưng điều đó đâu còn quan trọng nữa.

viết 18:36 ngày 01/10/2018

đấy cái này mình đang băn khoăn này, vì NHỠ tất cả điều kiện đều đúng thì nó có chạy tiếp ko ( đã thử và cũng thấy thế )
nhưng cũng muốn hỏi thêm cho chắc thôi, vì trong code hôm này mới gặp trường hợp này

ông trên kia cứ vào rep hiểu bản chất là thế nào ko

HK boy viết 18:50 ngày 01/10/2018

Thì bạn đừng có code như vậy nữa là được. Nếu bạn hiểu bản chất thì đã không code xấu như vậy.

Thay vì code

x = 10;
if (x > 2) {
    ...
} else if (x > 3) {
    ...
} else if (x > 4) {
    ...
} else if (x > 5) {
    ...
}
...

và hi vọng code chạy được đến điều kiện cuối, thì tại sao bạn không làm ngược lại

x = 10;
if (x > 5) {
    ...
} else if (x > 4) {
    ...
} else if (x > 3) {
    ...
} else if (x > 2) {
    ...
}
...
viết 18:51 ngày 01/10/2018

à code trên chỉ là ví dụ thôi, chứ mình ko có đoạn code nào như vậy cả, cảm ơn bạn đã quan tâm (y)

Trần Hoàn viết 18:48 ngày 01/10/2018

Hoặc bạn có thể code với một dạng format, dù không sáng sủa hơn nhưng bộc lộ rõ bản chất:

if (x > 2)
    DoSomething(2);
else
    if (x > 3)
        DoSomething(3);
    else
        if (x > 4)
            DoSomething(4);
        else 
            if (x > 5)
                DoSomething(5);
            else
                DoSomething(0);
Quân viết 18:48 ngày 01/10/2018

Nó đúng ở if đầu rồi thì phần else đâu quan trọng nữa.
else if chỉ là shorthand của

else
    if
rogp10 viết 18:35 ngày 01/10/2018

Bởi vì else nghĩa là “Nếu KHÔNG (thì)” nên nó hoạt động như vậy.

Tức là không thỏa điều kiện.

Bài liên quan
0