(+84) 236.3827111 ex. 402

Phép toán điều kiện 3 ngôi ( ? : )


Cú pháp: biểu_thức_logic ? biểu_thức_1 : biểu_thức_2

Diễn giải: Nếu biểu_thức_logic đúng (khác 0) thì kết quả của phép toán là giá trị của biểu_thức_1, ngược lại kết quả toán tử là giá trị của biểu_thức_2.

Kiểu của phép toán điều kiện là kiểu lớn nhất trong các kiểu của biểu_thức_1biểu_thức_2.

Toán tử này thực chất là cách viết tắt của cấu trúc if ... else

Như vậy, câu lệnh:

z = ( biểu_thức_logic ? biểu_thức_1 : biểu_thức_2 );

tương đương với:

if ( biểu_thức_logic) z = biểu_thức_1;

else z = biểu_thức_2;

Ví dụ: Câu lệnh z = ((x < y) ? x : y); sẽ gán giá trị nhỏ nhất của xy cho biến z.

Cho biết kết quả của chương trình sau đây:

#include

#include

int main(){

int a = 10, b = 5, c = 10, d;

printf("Minh họa phép toán tăng giảm");

d = a == (b = c);

printf("\n 1: a=%d b=%d c=%d d=%d", a, b, c, d);

a = b = c = 5;

a += b += c;

printf("\n 2: a=%d b=%d c=%d", a, b, c);

c = a > b ? a++ : b++;

printf("\n 3: a=%d b=%d c=%d", a, b, c);

c = a > b ? a++ : b++;

printf("\n 4: a=%d b=%d c=%d", a, b, c);

system("pause");

return 0;

}