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

php

#1

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 :smiley:
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 :smiley:


(Quân) #2

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


#3

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


(Quân) #4

Đủ 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


#5

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) #6

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.


#7

đấ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 :cold_sweat:


(HK boy) #8

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) {
    ...
}
...

#9

à 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) #10

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) #11

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) #12

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

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


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?