2015-04-29 21 views
5

Có sự khác biệt nào giữa việc viết nhiều câu hỏi if và câu hỏi if-else-if không?Có nhiều câu lệnh 'if' và 'if-else-if' khác cho các điều kiện loại trừ lẫn nhau không?

Khi tôi cố gắng viết một chương trình có nhiều câu lệnh if, Nó không đưa ra kết quả mong đợi, Nhưng nó hoạt động với if-else-if.

Các điều kiện loại trừ lẫn nhau.

+3

Trừ khi các điều kiện loại trừ lẫn nhau, thì có, nó tạo sự khác biệt. – dcastro

+3

_ "khi tôi cố gắng viết một chương trình với nhiều câu lệnh 'if', nó không đưa ra kết quả mong đợi. Nhưng với 'if else-if' nó hoạt động." _ Tôi nghĩ bạn vừa trả lời câu hỏi của mình ... –

+0

Các câu lệnh "Nếu" có nhiều ngôn ngữ và là một trong những nguyên tắc cơ bản của lập trình. Trang web này là về Q & A cho các vấn đề lập trình cụ thể, do đó, một cuộc thảo luận như vậy sẽ là quá rộng và không có chủ đề ở đây. – Abhay

Trả lời

8

Khi bạn viết nhiều câu lệnh if, có thể nhiều hơn một câu lệnh được đánh giá là true, vì các câu lệnh độc lập với nhau.

Khi bạn viết một câu lệnh if else-if else-if ... else, chỉ một điều kiện có thể được đánh giá là đúng (khi điều kiện đầu tiên đánh giá đúng là được tìm thấy, các điều kiện khác nếu điều kiện bị bỏ qua).

Bạn có thể thực hiện nhiều câu lệnh nếu hoạt động giống như câu lệnh if else-if .. else nếu mỗi khối điều kiện tách ra khỏi khối chứa câu lệnh if (ví dụ, bằng cách trả về từ phương thức hoặc ngắt một vòng lặp).

Ví dụ:

public void foo (int x) 
{ 
    if (x>5) { 
     ... 
     return; 
    } 
    if (x>7) { 
     ... 
     return; 
    } 
} 

sẽ có hành vi tương tự như:

public void foo (int x) 
{ 
    if (x>5) { 
     ... 
    } 
    else if (x>7) { 
     ... 
    } 
} 

Nhưng nếu không có những điều khoản trả lại nó sẽ có hành vi khác nhau khi x> 5 và x> 7 đều đúng.

0

Không có cả hai đều không giống nhau. nếu câu lệnh sẽ kiểm tra tất cả các điều kiện. Nếu bạn sẽ viết nhiều câu lệnh if thì nó sẽ kiểm tra mọi điều kiện. Nếu người khác sẽ kiểm tra các điều kiện cho đến khi thỏa mãn. Một khi nếu/else nếu được thỏa mãn nó sẽ được ra khỏi khối đó.

0

Có, nó tạo sự khác biệt: xem The if-then and if-then-else Statements.

Hơn nữa, bạn có thể dễ dàng kiểm tra nó.

Mã # 1:

int someValue = 10; 

    if(someValue > 0){ 
     System.out.println("someValue > 0"); 
    } 

    if(someValue > 5){ 
     System.out.println("someValue > 5"); 
    } 

Will đầu ra:

someValue > 0 
someValue > 5 

Trong khi mã # 2:

int someValue = 10; 

    if(someValue > 0){ 
     System.out.println("someValue > 0"); 
    }else if(someValue > 5){ 
     System.out.println("someValue > 5"); 
    } 

sẽ chỉ ra:

someValue > 0 

Như bạn có thể thấy, mã số 2 không bao giờ đi đến khối thứ hai, như câu lệnh đầu tiên (someValue> 0) đánh giá là true.

0
if() 
{ 
stmt.. 
} 
else 
{ 
stmt 
} 
if() 
{ 
stmt 
} 
here compiler will check for both the if condition. 

Trong fragement bên dưới của trình biên dịch mã sẽ kiểm tra nếu có điều kiện, càng sớm càng đầu tiên nếu điều kiện có được sự thật còn lại nếu điều kiện sẽ được bỏ qua.

 if(){ 

     } 
     else if 
     { 

     } 
     else if 
     { 

     } 
     else if 
     { 

     } 
Các vấn đề liên quan